使用 marionette firefox webdrive python splinter 接受 ssl 证书
accept ssl cert with marionette firefox webdrive python splinter
当使用 python splinter firefox 47 marionette 新的 webdriver 时,它在访问我想要的网站时给出证书错误,我试图接受
的 ssl 证书
browser = Browser('firefox', capabilities = {'marionette': True, 'acceptSslCerts': True})
或使用 trustAllSSLCertificates 而不是 acceptSslCerts,但仍然给我证书错误,这是什么问题?
我也遇到了这个问题。
这已被确认为错误。 https://bugzilla.mozilla.org/show_bug.cgi?id=1103196
可能有一个解决方法我还没有尝试过。 Programmatically Install Certificate into Mozilla
Firefox 错误现已解决:
https://github.com/mozilla/geckodriver/issues/93
目前,如果您想立即使用此功能,您需要安装最新的 Firefox Nightly 版本(52 或 53):
https://nightly.mozilla.org/
然后,以下代码将起作用(Python selenium 仅在这里,但我的猜测是您可以将 "acceptSslCerts" 替换为最新的:"acceptInsecureCerts" 在您的代码中)
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
caps = DesiredCapabilities.FIREFOX.copy()
caps['acceptInsecureCerts'] = True
ff_binary = FirefoxBinary("path to the Nightly binary")
driver = webdriver.Firefox(firefox_binary=ff_binary, capabilities=caps)
driver.get("https://expired.badssl.com")
编辑:我不确定如何将 Nightly 二进制文件传递给 Splinter - https://github.com/cobrateam/splinter/pull/437 - 希望 Firefox 的标准版本将在 2017-03-06 交付
https://wiki.mozilla.org/RapidRelease/Calendar
编辑: 没有必要再使用 nightly firefox
Rémi 的回答是正确的,谢谢。我在 Java 中遇到了同样的问题,以防其他人偶然发现这里是 Java 解决方案:
DesiredCapabilities caps = DesiredCapabilities.firefox();
caps.setCapability("acceptInsecureCerts", true);
FirefoxDriver driver = new FirefoxDriver(caps);
根据 Selenium 版本 3.3.1 还没有 CapabilityType.ACCEPT_INSECURE_CERTS
,并且 CapabilityType.ACCEPT_SSL_CERTS
不起作用,因此使用 "acceptInsecureCerts"
。构造函数 FirefoxDriver(binary, profile, capabilities)
也已弃用,但 AFAIK 这是使用自定义 Firefox 二进制文件(?)的唯一方法。
当使用 python splinter firefox 47 marionette 新的 webdriver 时,它在访问我想要的网站时给出证书错误,我试图接受
的 ssl 证书browser = Browser('firefox', capabilities = {'marionette': True, 'acceptSslCerts': True})
或使用 trustAllSSLCertificates 而不是 acceptSslCerts,但仍然给我证书错误,这是什么问题?
我也遇到了这个问题。
这已被确认为错误。 https://bugzilla.mozilla.org/show_bug.cgi?id=1103196
可能有一个解决方法我还没有尝试过。 Programmatically Install Certificate into Mozilla
Firefox 错误现已解决: https://github.com/mozilla/geckodriver/issues/93
目前,如果您想立即使用此功能,您需要安装最新的 Firefox Nightly 版本(52 或 53): https://nightly.mozilla.org/
然后,以下代码将起作用(Python selenium 仅在这里,但我的猜测是您可以将 "acceptSslCerts" 替换为最新的:"acceptInsecureCerts" 在您的代码中)
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
caps = DesiredCapabilities.FIREFOX.copy()
caps['acceptInsecureCerts'] = True
ff_binary = FirefoxBinary("path to the Nightly binary")
driver = webdriver.Firefox(firefox_binary=ff_binary, capabilities=caps)
driver.get("https://expired.badssl.com")
编辑:我不确定如何将 Nightly 二进制文件传递给 Splinter - https://github.com/cobrateam/splinter/pull/437 - 希望 Firefox 的标准版本将在 2017-03-06 交付 https://wiki.mozilla.org/RapidRelease/Calendar
编辑: 没有必要再使用 nightly firefox
Rémi 的回答是正确的,谢谢。我在 Java 中遇到了同样的问题,以防其他人偶然发现这里是 Java 解决方案:
DesiredCapabilities caps = DesiredCapabilities.firefox();
caps.setCapability("acceptInsecureCerts", true);
FirefoxDriver driver = new FirefoxDriver(caps);
根据 Selenium 版本 3.3.1 还没有 CapabilityType.ACCEPT_INSECURE_CERTS
,并且 CapabilityType.ACCEPT_SSL_CERTS
不起作用,因此使用 "acceptInsecureCerts"
。构造函数 FirefoxDriver(binary, profile, capabilities)
也已弃用,但 AFAIK 这是使用自定义 Firefox 二进制文件(?)的唯一方法。