accept ssl cert with marionette firefox webdrive python splinter

前端 未结 3 1646
北荒
北荒 2020-12-04 02:58

when using python splinter firefox 47 marionette new webdriver, it gives certificate error when access the website i want, i tried to accept ssl certs with

browser

相关标签:
3条回答
  • 2020-12-04 03:18

    I am also facing this issue.

    This has been acknowledged as a bug. https://bugzilla.mozilla.org/show_bug.cgi?id=1103196

    There may be a workaround I havent tried it yet. Programmatically Install Certificate into Mozilla

    0 讨论(0)
  • 2020-12-04 03:19

    The Firefox bug is now resolved: https://github.com/mozilla/geckodriver/issues/93

    For now, you need to install the latest Firefox Nightly build (52 or 53) if you want to use this feature right away: https://nightly.mozilla.org/

    Then, the following code will work (Python selenium only here, but my guess is that you can replace "acceptSslCerts" with the latest: "acceptInsecureCerts" in your code)

    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")
    

    edit: I am not sure how to pass the Nightly binary to Splinter though - https://github.com/cobrateam/splinter/pull/437 - hopefully the standard version of Firefox will be delivered on 2017-03-06 https://wiki.mozilla.org/RapidRelease/Calendar

    0 讨论(0)
  • 2020-12-04 03:25

    edit: it's not necessary to use the nightly firefox anymore

    Rémi's answer is correct, thank you. I have been facing the same issue in Java, in case someone else stumbles across this here's the Java solution:

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

    there isnt a CapabilityType.ACCEPT_INSECURE_CERTS yet as per Selenium version 3.3.1 and the CapabilityType.ACCEPT_SSL_CERTS doesn't work, thus use "acceptInsecureCerts". Also the constructor FirefoxDriver(binary, profile, capabilities) is deprecated but AFAIK this is the only way to use a custom Firefox binary (?).

    0 讨论(0)
提交回复
热议问题