接受ssl证书与marionette firefox webdrive python splinter

时间:2016-06-16 20:02:52

标签: python selenium firefox webdriver splinter

当使用python splinter firefox 47 marionette new webdriver时,它在访问我想要的网站时出现证书错误,我试图接受ssl证书

浏览器=浏览器(' firefox',capabilities = {' marionette':True,' acceptSslCerts':True})

或使用trustAllSSLCertificates而不是acceptSslCerts,但仍然给我证书错误,有什么问题?

3 个答案:

答案 0 :(得分:5)

Firefox错误现已解决: https://github.com/mozilla/geckodriver/issues/93

目前,如果您想立即使用此功能,则需要安装最新的Firefox Nightly版本(52或53): https://nightly.mozilla.org/

然后,以下代码将起作用(Python selenium只在这里,但我的猜测是你可以用你的代码中的最新代码“acceptInsecureCerts”替换“acceptSslCerts”)

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

答案 1 :(得分:2)

我也面临这个问题。

这被认为是一个错误。 https://bugzilla.mozilla.org/show_bug.cgi?id=1103196

可能有一种解决方法我尚未尝试过。 Programmatically Install Certificate into Mozilla

答案 2 :(得分:1)

编辑:没有必要再使用夜间火狐了

雷米的回答是正确的,谢谢。我一直在Java中遇到同样的问题,万一其他人偶然发现这是Java解决方案:

DesiredCapabilities caps = DesiredCapabilities.firefox();
caps.setCapability("acceptInsecureCerts", true);

FirefoxDriver driver = new FirefoxDriver(caps);

根据Selenium版本3.3.1还没有CapabilityType.ACCEPT_INSECURE_CERTSCapabilityType.ACCEPT_SSL_CERTS不起作用,因此使用"acceptInsecureCerts"。不推荐使用构造函数FirefoxDriver(binary, profile, capabilities)但是AFAIK这是使用自定义Firefox二进制文件(?)的唯一方法。