Estamos considerando actualizar nuestro servidor de producción de Ubuntu- desktop 10.04 a Ubuntu- server 12.04.
Tenemos varios servicios que se ejecutan en nuestro sistema operativo de escritorio actual, como Selenium Web Driver. Mi pregunta es ¿se puede ejecutar el controlador web Selenium desde un sistema basado en cli?
Mi pensamiento inmediato es que no puede, porque depende de Firefox, ¡pero me gustaría que alguien me demuestre que estoy equivocado!
Respuestas:
Lo que estas buscando es un navegador sin cabeza.
Sí, es posible ejecutar Selenium en Firefox sin cabeza. Aquí hay una publicación que puede seguir.
Aquí están los pasos resumidos para configurar Xvfb
fuente
Xvfb
, no para instalar y configurar Selenium (que requiere tenergeckodriver
en la ruta).subprocess.Popen('Xvfb...')
oos.system('Xvfb...')
, pero asegúrese de hacerlo antes de importar el controlador web.Chrome ahora tiene un modo sin cabeza:
fuente
Si. En su
HTMLUnitDriver
lugar, puede usar paraFirefoxDriver
mientras inicia webdriver. Esta es la configuración del navegador sin cabeza. Los detalles se pueden encontrar aquí .fuente
Si desea compatibilidad con un navegador sin cabeza, existe otro enfoque que podría adoptar.
https://github.com/detro/ghostdriver
Fue anunciado durante la Conferencia de Selenium y todavía está en desarrollo. Utiliza PhantomJS como navegador y es mucho mejor que HTMLUnitDriver, todavía no hay capturas de pantalla, pero como todavía está en desarrollo activo.
fuente
Un opcional es usarlo
pyvirtualdisplay
así:Una versión más corta es:
Este es generalmente un encapsulado de Python
xvfb
, y de alguna manera es más conveniente.Por cierto, aunque
PhantomJS
es un navegador sin cabeza y no se abrirá ninguna ventana si lo usa, parece quePhantomJS
todavía necesita un entorno de interfaz gráfica de usuario para funcionar.Obtuve el código de error -6 cuando lo uso en
PhantomJS()
lugar deFirefox()
en modo sin cabeza (consola conectada a masilla). Sin embargo, todo está bien en el entorno de escritorio.fuente
ACTUALIZACIÓN: Ya no necesitas XVFB para ejecutar Firefox sin cabeza. Firefox v55 + en Linux y Firefox v56 + en Windows / Mac ahora admite la ejecución sin cabeza.
Agregué documentación de cómo usar aquí:
https://developer.mozilla.org/en-US/Firefox/Headless_mode#Selenium_in_Java
fuente
Otra opción es GhostDriver, que ahora es oficialmente compatible con WebDriver: aumento de rendimiento real de Ghostdriver
fuente
Tenga en cuenta que el cliente web HtmlUnitDriver es de un solo subproceso y Ghostdriver tiene solo el 40% de las funcionalidades para ser un WebDriver.
No obstante, Ghostdriver se ejecuta correctamente para las pruebas y tengo problemas para conectarlo al concentrador de WebDriver.
fuente
Sí, puede ejecutar scripts de prueba sin un navegador, pero debe ejecutarlos en modo sin cabeza.
fuente
tal vez necesite establecer la dimensión del tamaño de su ventana. al igual que:
si tampoco funciona, intente aumentar la dimensión del tamaño de la ventana.
fuente
Instale y ejecute Firefox en contenedor:
Conéctese usando
webdriver.Remote
:fuente