¿Cómo ejecutar Firefox sin cabeza con Selenium en Python?

Resuelto Tintinabulator Zea asked hace 7 años • 8 respuestas

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")
Tintinabulator Zea avatar Oct 15 '17 15:10 Tintinabulator Zea
Aceptado

Para invocar el navegador Firefox sin cabeza, puede configurar la headlesspropiedad 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_HEADLESSen 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?

undetected Selenium avatar Oct 16 '2017 10:10 undetected 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")
Philippe Delteil avatar Apr 24 '2019 15:04 Philippe Delteil