visual unitarias test studio pruebas unit-testing selenium selenium-webdriver automated-tests headless-browser

unit testing - unitarias - ¿El selenio es compatible con las pruebas del navegador sin cabeza?



test explorer visual studio (11)

Estoy mirando Selenium Server por el momento, y no parece notar un controlador que admita pruebas de explorador sin cabeza.

A menos que me equivoque, no lo admite. Si está en X, puede crear un framebuffer virtual para ocultar la ventana del navegador, pero ese no es realmente un navegador sin cabeza.

¿Alguien puede iluminarme? ¿El selenio es compatible con las pruebas del navegador sin cabeza?


Aquí hay una "respuesta moderna" sobre cómo usar Selenium con xvfb y el controlador de Firefox en un entorno Linux de Ubuntu que ejecute Django / Python:

# install xvfb and Firefox driver sudo su apt-get install -y xvfb firefox wget https://github.com/mozilla/geckodriver/releases/download/v0.19.1/geckodriver-v0.19.1-linux64.tar.gz tar -x geckodriver -zf geckodriver-v0.19.1-linux64.tar.gz -O > /usr/bin/geckodriver chmod +x /usr/bin/geckodriver # install pip modules pip install selenium pip install PyVirtualDisplay

Luego puede seguir las [instrucciones de Django LiveServerTestCase] ​​[1].

Para usar el controlador que acaba de instalar, haga algo como esto:

from pyvirtualdisplay import Display from selenium.webdriver.firefox.webdriver import WebDriver driver = WebDriver(executable_path=''/usr/bin/geckodriver'') display = Display(visible=0, size=(800, 600)).start() # add your testing classes here... driver.quit() display.stop()


Con ruby ​​y macOS: brew install phantomjs luego:

driver = Selenium::WebDriver.for :phantomjs


La API de WebDriver tiene soporte para HTMLUnit como el navegador para su prueba. La gente de Ruby ha estado usando Capybara durante un tiempo para su prueba de selenio sin cabeza, por lo que definitivamente es factible.


Los navegadores sin cabeza son una mala idea. Te hacen algunas pruebas, pero nada como lo que verá un usuario real, y ocultan muchos problemas que solo los navegadores reales encuentran. Estás infinitamente mejor utilizando un navegador "encabezado" ( es decir , cualquier cosa menos HTMLUnit) en un entorno sin cabeza ( por ejemplo , Windows o Linux con XVFB).


Noté que dices que usar un X framebuffer no es una verdadera solución sin cabeza, sin embargo, para la mayoría, creo que sería aceptable. Además de eso, este servicio ayudará a conseguirlo si está interesado en eso como una solución.


Sé que esta es una publicación anterior. Pensé que ayudaría a otros que están buscando una respuesta.

Puede instalar un firefox completo en cualquier distribución de Linux usando XVFB. Esto asegura que tus pruebas se realicen en un navegador real. Una vez que tenga una configuración sin cabeza, puede usar el controlador de su elección para conectarse y ejecutar las pruebas.


Sí, Selenium es compatible con las pruebas del navegador sin cabeza. Los navegadores sin pantalla son más rápidos que los navegadores en tiempo real.


Sí, el selenio es compatible con las pruebas del navegador sin cabeza ... pero encontré que HTMLUnit falló la mayoría de las veces ... Estaba buscando una alternativa ... PhantomJs era realmente bueno. Sin dudas puedes intentarlo, fue muy rápido en comparación con otros navegadores. ... Es realmente bueno para las pruebas de humo ...

http://phantomjs.org/


Sí. Selenium admite pruebas de navegador sin cabeza y es más rápido y conveniente para una gran cantidad de ejecución de casos de prueba.

ChromeOptions cromeOptions = new ChromeOptions(); //Location of browser binary/.exe file cromeOptions.setBinary("/usr/bin/google-chrome-stable"); cromeOptions.addArguments("--headless"); cromeOptions.addArguments("--no-sandbox"); cromeOptions.addArguments("--disable-gpu"); cromeOptions.addArguments("--window-size=1920,1080"); WebDriver webDriver = new ChromeDriver(cromeOptions);


Selenium sí es compatible con las pruebas del navegador sin cabeza de una manera. Docker Selenium es mantenido por SeleniumHQ. Esos contenedores Docker vienen con soporte xvfb con ellos listos para usar. Hay herramientas como PhantomJS que puedes conectar con Selenium. Sin embargo, no es oficialmente compatible con Selenium.

Al igual que otros han descrito, PhantomJS no es realmente recomendable. El objetivo de Selenium es automatizar los navegadores. ¿Pero por qué automatizar un navegador que nadie usa? Nunca entendí cómo los desarrolladores pasaron por alto tan a menudo.


no necesita usar PhantomJS como alternativa al Selenio. Selenium incluye una clase de controlador web PhantomJS, que se monta en la plataforma GhostDriver. Simplemente instale el binario PhantomJS en su máquina. en python, puedes usar:

from selenium import webdriver dr = webdriver.PhantomJS()

y voilá.