python - 如何使用 Python 在 Selenium 中以编程方式使 Firefox headless ?

标签 python python-3.x selenium selenium-webdriver firefox-headless

我正在使用 python、selenium 和 firefox 运行此代码,但仍然获得 'head' 版本的 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)

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

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

最佳答案

要 headless 调用火狐浏览器,可以通过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()

还有另一种方法可以实现 headless 模式。如果您需要在 Firefox 中禁用或启用 headless 模式,而无需更改代码,您可以将环境变量 MOZ_HEADLESS 设置为 whatever,如果您希望 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 视频的步骤


结尾

How to configure ChromeDriver to initiate Chrome browser in Headless mode through Selenium?

关于python - 如何使用 Python 在 Selenium 中以编程方式使 Firefox headless ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46753393/

相关文章:

python - 在 pandas 中创建一个包含自上次事件以来的时间的新列

python - 在另一个函数中调用一个函数的结果

selenium - 使用 Selenium IDE 的 CSP 阻止调用 eval()

selenium - 将测试套件保存为 Selenium 中的单个文件

python-3.x - Selenium - urllib.error.URLError : <urlopen error [Errno 61] Connection refused>

python - ValueError:操作数无法与形状 (5,) (30,) 一起广播

python - 重命名 pandas 数据集中的列名称

python - 根据名称分割线

python - 使用 decode() 与正则表达式对这个字符串进行转义

python - 如何在Python中的类之间使用函数