python - 在 headless 模式下运行 Firefox 的正确方法(Selenium、Python)

标签 python selenium firefox firefox-headless

我想知道如何在 Selenium 中测试页面时运行隐藏的 Firefox 窗口,并遇到 this solution 。它说我可以在 headless 模式下运行 Firefox,如下所示:

from selenium import webdriver
import os
os.environ['MOZ_HEADLESS'] = '1'
driver = webdriver.Firefox()
driver.get("https://www.google.com/")
driver.close()

但它没有赢得任何选票。人们似乎认为这是一个错误的答案。 为什么?

另外,在官方文档中我发现可以这样完成:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
options = Options()
options.add_argument('-headless')
driver = webdriver.Firefox(options=options)
driver.get("https://www.google.com/")
driver.close()

有人可以解释一下这两种方式之间的区别吗?

最佳答案

第一个解决方案在您的计算机上设置环境变量,即更改您的平台。根据docs

If the platform supports the putenv() function, this mapping may be used to modify the environment

仅当您的平台支持 putenv() 时,它才有效。

Availability: most flavors of Unix, Windows.

第二个解决方案使用一些选项设置 webdriver 实例,而无需更改您的平台。

关于python - 在 headless 模式下运行 Firefox 的正确方法(Selenium、Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51740517/

相关文章:

python - 是否可以在另一个没有 sklearn 的程序中重用 sklearn 模型 pickle?

selenium.common.exceptions.NoSuchElementException 在 python 3.7 中使用 selenium

firefox - 使用后退按钮导航时在浏览器中自动重新发送 POST 请求

python - Plotly:如何使用分组图例设置多个子图?

python - 从 C 重新编码到 Python

python - 如何连续向下滚动页面直到找到某个元素? Python Selenium

html - 按钮背景颜色未显示在边缘,但适用于 Firefox 和 Chrome

javascript - 在 Firefox 中注入(inject) Javascript

for循环和 append 的Python问题

windows - 如何在自动化中验证音频/视频流