Estoy intentando automatizar un proceso de inicio de sesión en mi aplicación web utilizando la biblioteca de cliente de Selenium-Python. El objetivo final es aprender la biblioteca de Python Client de Selenium. Por lo tanto, realmente agradecería las respuestas de aquellos que están dentro de Selenium-Python.Biblioteca de cliente de Selenium-Python - Automatización en el fondo
corriente I tienen un código como este:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
browser = webdriver.Firefox() # Get local session of firefox
browser.get("http://myServer/WebAccess/login.html") # Load Application page
elem = browser.find_element_by_name("LoginID") # Find the Login box
elem.send_keys("Administrator")
elem = browser.find_element_by_name("Password") # Find the Password box
elem.send_keys("Administrator" + Keys.RETURN)
Esto funciona bien, pero todo sucede en el front-end. Quiero decir que literalmente abre un Firefox, ingresa las claves en los valores, hace clic en Enviar, etc., que es como se esperaba.
Me pregunto, ¿hay algo que pueda hacer para que todo esto suceda en el fondo? Digamos que no quiero monitorear lo que está haciendo el script. Solo quiero que se ejecute en segundo plano. ¿Hay alguna forma de lograr esto?
EDITAR
descargado e instalado PyVirtualDisplay en mis ventanas usando el comando setup.py install
. También se instaló el módulo EasyProcess y Path.
ahora tengo un código de ejemplo como éste
from pyvirtualdisplay import Display
from selenium import webdriver
display = Display(visible=0, size=(1024, 768))
display.start()
browser = webdriver.Firefox()
browser.get('http://www.google.com')
print browser.title
browser.close()
display.stop()
consigo los siguientes errores en la ejecución de este código:
`Traceback (most recent call last):
File "C:\Documents and Settings\user\Desktop\Sel.py", line 1, in <module>
from pyvirtualdisplay import Display
File "C:\Python27\lib\site-packages\pyvirtualdisplay\__init__.py", line 1, in <module>
from display import Display
File "C:\Python27\lib\site-packages\pyvirtualdisplay\display.py", line 2, in <module>
from pyvirtualdisplay.xephyr import XephyrDisplay
File "C:\Python27\lib\site-packages\pyvirtualdisplay\xephyr.py", line 8, in <module>
EasyProcess([PROGRAM, '-help'], url=URL, ubuntu_package=PACKAGE).check_installed()
File "C:\Python27\lib\site-packages\easyprocess\__init__.py", line 202, in check_installed
raise EasyProcessCheckInstalledError(self)
EasyProcessCheckInstalledError: cmd=['Xephyr', '-help']
OSError=[Error 2] The system cannot find the file specified
Program install error! `
PyVirtualDisplay requiere Xephyr y Xvfb, que parecen ser puramente Linux servicios. Busqué una pantalla virtual para Windows, pero no pude encontrar nada adecuado. –
Jason, gracias! Yo estaba buscando también. Finalmente terminé con HtmlUnit para proceder con un enfoque menos GUI. ¡Gracias! –