mbl*_*ley 3 python firefox selenium marionette geckodriver
我只在硒控制的 Firefox 弹出窗口中看到一个奇怪的“不受信任的证书”错误。很具体。为了解决这个问题,各种谷歌结果建议关闭牵线木偶,如下所示:
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = False
driver = webdriver.Firefox()
Run Code Online (Sandbox Code Playgroud)
这有效,但如何?Geckodriver 在 Marionette 关闭的情况下如何工作?
Marionette 是 Mozilla 的 Gecko 引擎的自动化驱动程序。
答案继续明确地说它应该失败:
“在使用 Firefox 53.x 浏览器的情况下,如果您通过 DesiredCapabilities 类将“marionette”强行设置为 false,您将观察到 UnreachableBrowserException。”
那么,这到底是怎么工作的呢?
您已经处理了以下几件事:
"untrusted cert" error only on selenium-controlled firefox pop-ups:这是一个常见问题,我们可以通过WebDriver通过DesiredCapabilities类配置实例来避免这种情况。turning off marionette:marionette当我们使用 Selenium 3.x 和最近的 Mozilla Firefox 浏览器版本时,关闭不再是一个解决方案。通过 DesiredCapabilities 类将“marionette”强制设置为 false,您将无法打开 48.x 以上版本的 Mozilla Firefox 浏览器。DesiredCapabilities但仍然有效,并打开旧版本的 Mozilla Firefox 浏览器会话,该会话也安装在您的机器上,版本低于 48.xhttps://www.whatismybrowser.com/。代码:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = False
driver = webdriver.Firefox()
driver.get('https://www.whatismybrowser.com/')
Run Code Online (Sandbox Code Playgroud)
结果:Mozilla Firefox 47 版已打开。
executable_path在初始化驱动程序时添加。需要注意的是,当前的 Selenium-Python 绑定对于 geckodriver 是不稳定的,并且看起来是特定于架构的。您可以在此处找到 github讨论和合并。因此,您可能还需要
firefox_binary在初始化webdriver时将 firefox 二进制文件的绝对路径作为参数传递
代码:
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
binary = FirefoxBinary('C:\\Program Files\\Mozilla Firefox\\firefox.exe')
firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
driver = webdriver.Firefox(firefox_binary=binary,executable_path='C:\\Utility\\BrowserDrivers\\geckodriver.exe')
driver.get('https://www.whatismybrowser.com/')
Run Code Online (Sandbox Code Playgroud)
结果:Mozilla Firefox 53 版已打开。
| 归档时间: |
|
| 查看次数: |
4391 次 |
| 最近记录: |