2016-06-16 6 views
2

akzeptieren, wenn Python Splitter firefox 47 mariniert neue WebDriver verwenden, gibt es Zertifikat Fehler beim Zugriff auf die Website ich will, habe ich versucht, ssl Zert mitSSL-Zertifikat mit mariniert firefox webdrive Python Splitter

browser = Browser ('firefox zu akzeptieren ', capabilities = {' marionette ': True,' acceptSslCerts ': True})

oder trustAllSSLCertificates anstelle von acceptSslCerts verwenden, aber gibt mir immer noch Zertifikatfehler, was ist das Problem?

Antwort

5

Das ist Firefox Fehler jetzt behoben: https://github.com/mozilla/geckodriver/issues/93

Vorerst Sie die neueste Firefox Nightly Build (52 oder 53) installieren, wenn Sie diese Funktion sofort verwenden möchten: https://nightly.mozilla.org/

Dann wird der folgende Code (Python Selen nur hier, aber meine Vermutung ist, dass Sie „acceptSslCerts“ mit der neuesten ersetzen: „acceptInsecureCerts“ in Ihrem Code) arbeitet

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: Ich bin nicht sicher, wie die nächtliche binäre passieren obwohl Splinter - https://github.com/cobrateam/splinter/pull/437 - hoffentlich die Standard-Version von Firefox wird auf 2017-03-06 https://wiki.mozilla.org/RapidRelease/Calendar

2

Ich bin auch mit diesem Problem konfrontiert.

Dies wurde als Fehler erkannt. https://bugzilla.mozilla.org/show_bug.cgi?id=1103196

Es kann eine Ausweichlösung geben, die ich noch nicht versucht habe. Programmatically Install Certificate into Mozilla

+0

leider Standard-Profil-Funktion wurde ab Firefox 46 entfernt. Http://forums.mozillazine.org/viewtopic.php?f=38&t=3002375 die einzige Möglichkeit, dies zu tun, ist Splitter spezifischen vorhandenen Profil geben Pfad, den Sie normalerweise verwenden, dass Sie eine Ausnahme für das Zertifikat hinzugefügt haben, anstatt splinter zu lassen, um ein temporäres Profil während der Ausführung zu erstellen – Amr

1

bearbeiten geliefert werden: es zu benutzen, nicht notwendig ist das nächtliche firefox mehr

Rémis Antwort ist korrekt, danke. Ich habe in Java mit dem gleichen Problem konfrontiert, hier im Fall jemand anderes stolpert über dies ist die Java-Lösung:

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

FirefoxDriver driver = new FirefoxDriver(caps); 

es ist nicht ein CapabilityType.ACCEPT_INSECURE_CERTS noch als pro Selenium Version 3.3.1 und die CapabilityType.ACCEPT_SSL_CERTS nicht funktioniert, so Verwenden Sie "acceptInsecureCerts". Auch der Konstruktor FirefoxDriver(binary, profile, capabilities) ist veraltet, aber AFAIK ist die einzige Möglichkeit, eine benutzerdefinierte Firefox-Binärdatei (?) Zu verwenden.