¿Cómo ejecutar Firefox sin cabeza con Selenium en Python?
Estoy ejecutando este código con Python, Selenium y Firefox pero todavía obtengo la versión "principal" de Firefox:
binary = FirefoxBinary('C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe', log_file=sys.stdout)
binary.add_command_line_options('-headless')
self.driver = webdriver.Firefox(firefox_binary=binary)
También probé algunas variaciones del binario:
binary = FirefoxBinary('C:\\Program Files\\Nightly\\firefox.exe', log_file=sys.stdout)
binary.add_command_line_options("--headless")
Para invocar el navegador Firefox sin cabeza, puede configurar la headless
propiedad a través de Options()
la clase de la siguiente manera:
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
options = Options()
options.headless = True
driver = webdriver.Firefox(options=options, executable_path=r'C:\Utility\BrowserDrivers\geckodriver.exe')
driver.get("http://google.com/")
print ("Headless Firefox Initialized")
driver.quit()
Hay otra forma de lograr el modo sin cabeza. Si necesita deshabilitar o habilitar el modo sin cabeza en Firefox, sin cambiar el código, puede configurar la variable de entorno MOZ_HEADLESS
en cualquier valor si desea que Firefox se ejecute sin cabeza, o no configurarlo en absoluto.
Esto es muy útil cuando utiliza, por ejemplo, integración continua y desea ejecutar las pruebas funcionales en el servidor pero aún puede ejecutar las pruebas en modo normal en su PC.
$ MOZ_HEADLESS=1 python manage.py test # testing example in Django with headless Firefox
o
$ export MOZ_HEADLESS=1 # this way you only have to set it once
$ python manage.py test functional/tests/directory
$ unset MOZ_HEADLESS # if you want to disable headless mode
Pasos a través del vídeo de YouTube
- Mozilla Firefox en modo sin cabeza a través de Selenium 3.5.2 (Java)
- Inicie sesión en su cuenta de Gmail usando Headless Chrome a través de Selenium Java
Outro
¿Cómo configurar ChromeDriver para iniciar el navegador Chrome en modo sin cabeza a través de Selenium?
La primera respuesta ya no funciona.
Esto funcionó para mí:
from selenium.webdriver.firefox.options import Options as FirefoxOptions
from selenium import webdriver
options = FirefoxOptions()
options.add_argument("--headless")
driver = webdriver.Firefox(options=options)
driver.get("http://google.com")