web-dev-qa-db-ja.com

SeleniumはMarionette Webdriverをインストールします

Firefoxバージョン47でこの問題があります https://github.com/seleniumhq/Selenium/issues/211

だから、私はそれを修正するためにMarionette Webドライバーを追加しようとしました: https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver

だが:

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'

エラーを返します:

Selenium.common.exceptions.WebDriverException:メッセージ: 'wires'実行可能ファイルはPATHにある必要があります。

例外AttributeError:「 'Service'オブジェクトに属性 'process'がありません」>>無視

セレン== 2.53.5

12
Arti

設定するfirefoxバイナリ機能は、マリオネットドライババイナリではなく、firefoxバイナリをポイントします。次のように、パスに/Users/myproject/geckodriver-0.8.0-OSXを追加する必要があります。

ターミナルを開き、このコマンドを実行します

export PATH=$PATH:/Users/myproject/geckodriver-0.8.0-OSX
9
Mobrockers

I この問題に遭遇した であり、firefox_capabilities['binary']は、GeckoDriverではなく、Firefoxバイナリを指す必要があります。 Mozilla WebDriverドキュメント のPythonの例)==はこのトピックで明確になりました。

5
Raymond Yee

他の2つの答えに加えて、おそらくテストを実行するときにのみ必要になるため、PATHシステム全体を変更したくないでしょう。必要な場合にのみPATHを適切に設定する方法は、コードで設定することです。

os.environ["PATH"] += os.pathsep + 'path/to/dir/containing/geckodriver/'

より簡単な回避策は、パスに既にあるディレクトリにgeckodriverバイナリを移動することです:

mv geckodriver /usr/local/bin
0
dsalaj