Si te encuentras con algo que te causa duda puedes dejarlo en los comentarios y trataremos de ayudarte tan rápido como podamos.
Solución:
Si usa el controlador web Selenium con Python, puede usar PyVirtualDisplay, un contenedor de Python para Xvfb y Xephyr.
PyVirtualDisplay necesita Xvfb como dependencia. En Ubuntu, primero instale Xvfb:
sudo apt-get install xvfb
Luego instale PyVirtualDisplay desde PyPI:
pip install pyvirtualdisplay
Ejemplo de secuencia de comandos de Selenium en Python en modo sin cabeza con PyVirtualDisplay:
#!/usr/bin/env python
from pyvirtualdisplay import Display
from selenium import webdriver
display = Display(visible=0, size=(800, 600))
display.start()
# Now Firefox will run in a virtual display.
# You will not see the browser.
browser = webdriver.Firefox()
browser.get('http://www.google.com')
print browser.title
browser.quit()
display.stop()
EDITAR
La respuesta inicial se publicó en 2014 y ahora estamos en la cúspide de 2018. Como todo, los navegadores también han avanzado. Chrome tiene ahora una versión completamente autónoma que elimina la necesidad de usar bibliotecas de terceros para ocultar la ventana de la interfaz de usuario. El código de ejemplo es el siguiente:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
CHROME_PATH = '/usr/bin/google-chrome'
CHROMEDRIVER_PATH = '/usr/bin/chromedriver'
WINDOW_SIZE = "1920,1080"
chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--window-size=%s" % WINDOW_SIZE)
chrome_options.binary_location = CHROME_PATH
driver = webdriver.Chrome(executable_path=CHROMEDRIVER_PATH,
chrome_options=chrome_options
)
driver.get("https://www.google.com")
driver.get_screenshot_as_file("capture.png")
driver.close()
Hay algunas formas, pero no es un simple “establecer un valor de configuración”. A menos que invierta en un navegador sin cabeza, que no se adapta a los requisitos de todos, es un pequeño truco:
¿Cómo ocultar la ventana de Firefox (Selenium WebDriver)?
y
¿Es posible ocultar el navegador en Selenium RC?
Puede ‘supuestamente’ pasar algunos parámetros a Chrome, específicamente: --no-startup-window
Tenga en cuenta que para algunos navegadores, especialmente Internet Explorer, dañará sus pruebas si no se ejecuta en foco.
También puede modificar un poco con AutoIt, para ocultar la ventana una vez abierta.
Chrome 57 tiene una opción para pasar el indicador –headless, que hace que la ventana sea invisible.
Esta bandera es diferente de –no-startup-window ya que la última no abre una ventana. Se utiliza para alojar aplicaciones en segundo plano, como dice esta página.
Código Java para pasar la bandera a Selenium webdriver (ChromeDriver):
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless");
ChromeDriver chromeDriver = new ChromeDriver(options);
Aquí tienes las reseñas y calificaciones
Nos puedes añadir valor a nuestra información participando con tu experiencia en las explicaciones.