如何使用 Python 在 Selenium 中以编程方式使 Firefox 无头?

新手上路,请多包涵

我正在使用 python、selenium 和 firefox 运行这段代码,但仍然得到 firefox 的“head”版本:

 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)

我还尝试了一些二进制变体:

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

原文由 Tintinabulator Zea 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 728
2 个回答

要无头调用 Firefox 浏览器,您可以通过 Options() 类设置 headless 属性,如下所示:

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


还有另一种方法可以实现无头模式。如果您需要在 Firefox 中禁用或启用 headless 模式,无需更改代码,您可以将环境变量 MOZ_HEADLESS 设置为 任何 你希望 Firefox 运行 headless 的值,或者根本不设置它。

例如,当您使用持续集成并且想要在服务器中运行功能测试但仍然能够在您的 PC 中以正常模式运行测试时,这非常有用。

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

或者

$ 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


YouTube 视频的步骤


结局

如何配置 ChromeDriver 以通过 Selenium 以 Headless 模式启动 Chrome 浏览器?

原文由 undetected Selenium 发布,翻译遵循 CC BY-SA 4.0 许可协议

第一个答案不再有效。

这对我有用:

 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 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题