Estoy usando Selenium RC para automatizar algunas operaciones del navegador, pero quiero que el navegador sea invisible. es posible? ¿Cómo? ¿Qué pasa con Selenium Grid? ¿Puedo ocultar la ventana de Selenium RC también?¿Es posible ocultar el navegador en Selenium RC?
Respuesta
Hay algunas opciones:
Usted podría utilizar selenio cuadrícula de modo que se abra el navegador en un equipo completamente diferente (o máquina virtual), que luego se puede conectar a través de VNC o Remote Desktop Connection si quieres ver el navegador. Además, otra opción: si ejecuta un proceso en primer plano de Jenkins en ese servidor remoto, puede ejecutar su proyecto de prueba en el escritorio.
Puede ejecutar Selenium 'headless' en Linux en XVFB. Nunca he intentado hacer esto y dudo que realmente valga la pena el esfuerzo. http://www.alittlemadness.com/2008/03/05/running-selenium-headless/
Puede envolver Selenium RC en un servicio de Windows. http://support.microsoft.com/kb/137890. Excepto que las restricciones de permisos en las versiones posteriores de Windows probablemente evitarán que Selenium acceda al escritorio como lo hizo Windows 2000 para permitirnos.
Otra opción sería usar algo como WebDriver HTMLUnitDriver, que no ejecuta un navegador "real". http://code.google.com/p/webdriver/. También hay una opción PhantomJS, así como un "Chrome sin cabeza" que podrías usar.
Por supuesto, también existe la opción de utilizar un servicio como SauceLabs, donde puede hacer que sus pruebas se ejecuten en la nube. Después de que tus pruebas se hayan completado, puedes ver un video de ellas corriendo.
Aquí hay instrucciones para crear un archivo bat para instalar el servicio: http://brantleytec.blogspot.com/2012/11/selenium-hub-and-node-as-windows-service.html –
+1 for Selenium RC as a windows service.
Para que las pruebas se ejecuten completamente ocultas, creo que no tienes muchas soluciones si estás en Windows.
Lo que haría sería dedicar una computadora en su LAN para estar en línea todo el tiempo y tener un servidor de selenio RC en ejecución. Entonces usa la IP de esa computadora en lugar de localhost para ejecutar sus pruebas. Por ejemplo:
browser = selenium("10.15.12.34",4444,"*firefox","http://saucelabs.com")
(teniendo en cuenta que esa es la IP del equipo que ejecuta el servidor).
Con esa configuración, ejecuta las pruebas en su computadora, los navegadores y la ventana del servidor RC están en otra computadora y la vuelve a la suya una vez que lo haya hecho.
Si está en Windows, una opción es ejecutar las pruebas en una cuenta de usuario diferente. Esto significa que el navegador y el servidor de Java no serán visibles para su propia cuenta.
En Linux, puede ejecutar WebDriver en una pantalla sin cabeza (virtual) para ocultar el navegador. Esto se puede hacer con Xvfb (X framebuffer virtual).
Puede controlar Xvfb directamente desde el código Python usando xvfbwrapper
: https://github.com/cgoldberg/xvfbwrapper
código Python para ejecutar sin cabeza sería el siguiente:
from selenium import webdriver
from xvfbwrapper import Xvfb
display = Xvfb()
display.start()
# now Firefox will run in a virtual display.
# you will not see the browser.
driver = webdriver.Firefox()
driver.get('http://www.google.com')
print(driver.title)
driver.quit()
display.stop()
instalar las dependencias en Debian/Ubuntu:
$ sudo apt-get install xvfb
$ pip install xvfbwrapper
Así es como corro mis pruebas con maven en un escritorio Linux (Ubuntu). Me cansé de no poder trabajar con el controlador de web de firefox, siempre enfocándome.
He instalado XVFB
XVFB plazo -a MVN instalación limpia
Eso es todo
Esta es, con frecuencia, la forma más fácil de asegurarse de que xvfb se esté ejecutando y sea utilizado por Selenium/WebDriver. –
En Linux, puede ejecutar el navegador de prueba en una pantalla virtual. Necesitará el paquete xvfb
para crear un servidor X virtual. En distribuciones basadas en Debian, basta con ejecutar
sudo apt-get install xvfb
Hay una buena herramienta ephemeral-x.sh
que configurar de modo conveniente para ejecutar cualquier comando en la pantalla virtual. .
'wget https: // raw.github.com/jordansissel/xdotool/master/t/efhemeral-x.sh' – pic
URL corregida, gracias. – pixelistik
Este script tiene un problema de cotización. Si digo ./ephemeral-x.sh foo '*' dice "Running: foo" seguido de los contenidos de mi directorio. –
Hay un proyecto relacionado con PhantomJS llamado GhostDriver, que está destinado a ejecutar instancias de PhantomJS en una cuadrícula de selenio utilizando el protocolo JSON de cable de webdriver. Eso es probablemente lo que está buscando, aunque esta pregunta ya tiene 4 años.
Logré ocultar fácilmente la ventana del navegador.
Just install PhantomJS. A continuación, cambie esta línea:
driver = webdriver.Firefox()
a:
driver = webdriver.PhantomJS()
El resto de su código no tendrá que ser cambiado y no hay ningún navegador se abrirá. Para fines de depuración, use driver.save_screenshot('screen.png')
en diferentes pasos de su código.
Vale la pena mencionar que debes poner la ruta del PhantomJs.exe para que funcione. ejemplo 'driver = webdriver.PhantomJS (r" C: \\ phantomjs \ phantomjs.exe ")' –
Sí, pero solo en Windows. –
no necesita especificar la ubicación del binario, siempre que se pueda encontrar desde la variable de entorno $ PATH de su entorno. –
En MacOSX, no he podido ocultar la ventana del navegador, pero al menos he descubierto cómo moverlo a una pantalla diferente para que no interrumpa tanto mi flujo de trabajo. Mientras que Firefox se está ejecutando pruebas, simplemente controlar clic en su icono en el Dock, seleccione Opciones, y asignar a Display 2.
curl -k https://gist.githubusercontent.com/terrancesnyder/995250/raw/cdd1f52353bb614a5a016c2e8e77a2afb718f3c3/ephemeral-x.sh -o ~/ephemeral-x.sh
chmod +x ~/ephemeral-x.sh
~/ephemeral-x.sh TestsStarterCommand
Por cierto esta es una característica que necesita cualquier E2E corriendo desarrollador que lógicamente va a desovar navegadores .En un entorno de desarrollo, resulta molesto ocuparse de la ventana que sigue apareciendo y de la que puede interactuar accidentalmente haciendo que falle la prueba.
En muchos casos, PhantomJS no se ajustará completamente a sus necesidades, me gustaría detallar la opción de cromo sin cabeza que se menciona en la respuesta de Dave Hunt.
cromo 57 acaba de lanzar esta función. Puede usarlo pasando el indicador sin cabeza a través de ChromeDriver, para obtener más información, consulte la discusión en this question
- 1. ¿Selenium RC es compatible con IE8?
- 2. ¿Cómo ejecutar Google Chrome con Selenium RC?
- 3. ¿Cuál es la relación entre Selenium RC y WebDriver?
- 4. Selenium RC: ejecutar pruebas en navegadores múltiples automáticamente
- 5. ¿Cómo pruebo qué elemento tiene el foco en Selenium RC?
- 6. Selenium RC Tiene problemas con XPath
- 7. Diferencia entre Selenium RC y WebDriver
- 8. Lista de lanzadores Selenium RC Browser
- 9. ¿Es posible ocultar el título de href?
- 10. ¿Es posible ocultar el navegador iOS Chrome en una página web normal?
- 11. Selenium WebDriver cómo cerrar el navegador emergente
- 12. Simular evento de pulsación de tecla TAB en Selenium RC
- 13. Diferencia entre isElementPresent e isVisible en Selenium RC
- 14. ¿Cómo usar xpath en Selenium RC con JavaScript?
- 15. Selenium-rc: ¿Cómo se usa CaptureNetworkTraffic en python
- 16. Selenium RC: Cómo iniciar pruebas interactivas con varios navegadores
- 17. ¿Es posible ejecutar scripts de Selenium sin tener también un servidor X en ejecución?
- 18. Cambiar el navegador predeterminado en Visual Studio 2010 RC
- 19. ¿Es posible ocultar una contraseña definida en el código C++
- 20. Selenium RC> cómo cargar un archivo usando attachFile()
- 21. ¿Es posible "ocultar" extensiones de idioma?
- 22. Selenium RC y eventos de control de entrada
- 23. ¿Es posible ocultar (no eliminar) un PivotItem?
- 24. ¿Es posible ejecutar el navegador Chromium en Android?
- 25. iPhone: ¿Es posible ocultar el teclado al tocar UITextField?
- 26. ¿Qué es rc representa
- 27. Comprobando el código de estado HTTP en Selenium
- 28. Selenium Grid2 - ¿Es posible ejecutar 10 instancias de Chrome?
- 29. ¿Cuál es la diferencia entre Selenium IDE, Server, RC, 2.0 y WebDriver?
- 30. ¿Es posible utilizar Selenium WebDriver para controlar PhantomJS?
Puede que no sea aceptable, pero ¿no podría simplemente sacar el navegador de la pantalla (utilizando la automatización de Windows UI?) como colocar la ventana en (-10000, -10000)? – BrainSlugs83
Dado que esta pregunta ya es antigua, permítame que lo redireccione hacia una respuesta correcta y actualizada [en la parte inferior de esta página] (http://stackoverflow.com/a/23898054/1515819). –