Принять SSL сертификат с марионеткой Firefox Webdrive Python Splinter
При использовании нового веб-драйвера python splinter firefox 47 marionette выдает ошибку сертификата при доступе к нужному веб-сайту, я пытался принять ssl-сертификаты с помощью
browser = Browser('firefox',abilities = {'marionette': True, 'acceptSslCerts': True})
или использование trustAllSSLCertificates вместо acceptSslCerts, но все равно выдает ошибку сертификата, в чем проблема?
3 ответа
Исправлена ошибка 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
Я также сталкиваюсь с этой проблемой.
Это было признано ошибкой. https://bugzilla.mozilla.org/show_bug.cgi?id=1103196
Может быть обходной путь, который я еще не пробовал. Программно установить сертификат в Mozilla
редактировать: больше не нужно использовать ночной Firefox
Ответ Реми правильный, спасибо. Я столкнулся с той же проблемой в Java, на случай, если кто-то еще наткнется на это, вот решение Java:
DesiredCapabilities caps = DesiredCapabilities.firefox();
caps.setCapability("acceptInsecureCerts", true);
FirefoxDriver driver = new FirefoxDriver(caps);
нет CapabilityType.ACCEPT_INSECURE_CERTS
все же в соответствии с Selenium версии 3.3.1 и CapabilityType.ACCEPT_SSL_CERTS
не работает, поэтому используйте "acceptInsecureCerts"
, Также конструктор FirefoxDriver(binary, profile, capabilities)
устарела, но AFAIK это единственный способ использовать пользовательский бинарный файл Firefox (?).