webentwicklung-frage-antwort-db.com.de

Selen installieren Marionette Webdriver

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

12
Arti

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
9
Mobrockers

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.

5
Raymond Yee

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
0
dsalaj