当使用python splinter firefox 47 marionette new webdriver时,它在访问我想要的网站时出现证书错误,我试图接受ssl证书
浏览器=浏览器(' firefox',capabilities = {' marionette':True,' acceptSslCerts':True})
或使用trustAllSSLCertificates而不是acceptSslCerts,但仍然给我证书错误,有什么问题?
答案 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_CERTS
且CapabilityType.ACCEPT_SSL_CERTS
不起作用,因此使用"acceptInsecureCerts"
。不推荐使用构造函数FirefoxDriver(binary, profile, capabilities)
但是AFAIK这是使用自定义Firefox二进制文件(?)的唯一方法。