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
設定するfirefoxバイナリ機能は、マリオネットドライババイナリではなく、firefoxバイナリをポイントします。次のように、パスに/Users/myproject/geckodriver-0.8.0-OSX
を追加する必要があります。
ターミナルを開き、このコマンドを実行します
export PATH=$PATH:/Users/myproject/geckodriver-0.8.0-OSX
I この問題に遭遇した であり、firefox_capabilities['binary']
は、GeckoDriverではなく、Firefoxバイナリを指す必要があります。 Mozilla WebDriverドキュメント のPythonの例)==はこのトピックで明確になりました。
他の2つの答えに加えて、おそらくテストを実行するときにのみ必要になるため、PATH
システム全体を変更したくないでしょう。必要な場合にのみPATH
を適切に設定する方法は、コードで設定することです。
os.environ["PATH"] += os.pathsep + 'path/to/dir/containing/geckodriver/'
より簡単な回避策は、パスに既にあるディレクトリにgeckodriver
バイナリを移動することです:
mv geckodriver /usr/local/bin