Ich habe dieses Problem mit Firefox Version 47 https://github.com/seleniumhq/Selenium/issues/2110
Also habe ich versucht, einen Marionettentreiber hinzuzufügen, um das Problem zu beheben: https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver
Aber:
from Selenium.webdriver.common.desired_capabilities import DesiredCapabilities
firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
firefox_capabilities['binary'] = '/Users/myproject/geckodriver-0.8.0-OSX'
gibt Fehler zurück:
Selenium.common.exceptions.WebDriverException: Nachricht: 'wire' Die ausführbare Datei muss sich in PATH befinden.
Ausnahme AttributeError: "'Service'-Objekt hat kein Attribut ' Prozess '" in> ignoriert
Selen == 2,53,5
die firefox-Binärfunktion, die Sie einstellen, bezieht sich auf die firefox -binärdatei, nicht auf den binären Marionettentreiber. Sie müssen /Users/myproject/geckodriver-0.8.0-OSX
wie folgt zu Ihrem Pfad hinzufügen:
Öffnen Sie ein Terminal und führen Sie diesen Befehl aus
export PATH=$PATH:/Users/myproject/geckodriver-0.8.0-OSX
Ich lief in dieses Problem ein und kann bestätigen, dass firefox_capabilities['binary']
auf die Firefox-Binärdatei verweist, nicht auf GeckoDriver. Das Python-Beispiel in der Mozilla WebDriver-Dokumentation wurde zu diesem Thema erläutert.
Zusätzlich zu den beiden anderen Antworten möchten Sie wahrscheinlich PATH
nicht systemweit ändern, da Sie es nur beim Ausführen der Tests benötigen. Eine Möglichkeit, die richtige PATH
nur dann zu haben, wenn Sie es benötigen, besteht darin, sie im Code festzulegen:
os.environ["PATH"] += os.pathsep + 'path/to/dir/containing/geckodriver/'
Eine einfachere Problemumgehung wäre das Verschieben der geckodriver
-Binärdatei in das Verzeichnis, das Sie bereits in Ihrem Pfad haben:
mv geckodriver /usr/local/bin