web-dev-qa-db-fra.com

Comment faire de firefox sans tête par programmation dans Selenium avec Python?

J'utilise ce code avec Python, Selenium et Firefox, mais j'obtiens toujours la version 'principale' 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)

J'ai aussi essayé quelques variantes de binaire:

binary = FirefoxBinary('C:\\Program Files\\Nightly\\firefox.exe', log_file=sys.stdout)
        binary.add_command_line_options("--headless")
80
Tintinabulator Zea

Pour appeler le navigateur Firefox sans tête, vous pouvez définir la propriété headless via la classe Options() comme suit:

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()

Il existe un autre moyen de réaliser le mode sans tête. Si vous devez désactiver ou activer le mode sans tête dans Firefox, sans changer le code, vous pouvez définir la variable d'environnement MOZ_HEADLESS sur comme vous le souhaitez si vous voulez que Firefox fonctionne sans tête, ou ne le définissez pas du tout.

Ceci est très utile lorsque vous utilisez, par exemple, une intégration continue et que vous souhaitez exécuter les tests fonctionnels sur le serveur tout en pouvant exécuter les tests en mode normal sur votre PC.

$ MOZ_HEADLESS=1 python manage.py test # testing example in Django with headless Firefox

ou

$ 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

Outro

Comment configurer ChromeDriver pour lancer Chrome navigateur en mode sans tête via Selenium?

144
DebanjanB

Ma réponse:

set_headless(headless=True) is deprecated. 

https://seleniumhq.github.io/Selenium/docs/api/py/webdriver_firefox/Selenium.webdriver.firefox.options.html

options.headless = True

travaille pour moi

9
Jack Suze

La première réponse ne fonctionne plus.

Cela a fonctionné pour moi:

from Selenium.webdriver.firefox.options import Options as FirefoxOptions

options = FirefoxOptions()
options.add_argument("--headless")
driver = webdriver.Firefox(options=options)
driver.get("http://google.com")
8
Philippe Delteil