2017-06-19 15 views
0

this image に表示されているようにgeckodriver.exeをPATHに追加した後、コンピュータを再起動しました。しかし、まだエラーが表示されます。Python 3.5 - 「Geckodriver実行ファイルがPATHにある必要があります」

は、ここに私のコードです:

from selenium import webdriver 

driver = webdriver.Firefox() 
driver.get('https://stackoverflow.com') 

あなたは私が間違って何をしたかについての手がかりを持っていますか?

+1

エラーを報告することができますか? – cjonesrun

+0

Pythonを使用して[Selenium]を複製する可能性があります - Geckodriver実行ファイルがPATHに存在する必要があります(https://stackoverflow.com/questions/40208051/selenium-using-python-geckodriver-executable-needs-to-be-in-path) – Andersson

+0

ウィンドウで、環境変数 "webdriver.gecko.driver"を作成し、ドライバパス( "c:\ geckodriver.exe")を値として設定します。 – Murthi

答えて

0

このエラーを解決する方法は3つあります。

  1. geckoドライバをダウンロードし、pythonテストスクリプトがあるディレクトリに保存します。
  2. ドライバパスを値として環境変数 "webdriver.gecko.driver"を設定します。ここでdriver = WebDriver.Firefox("path of executable")

0

のようなコンストラクタへos.environ["webdriver.gecko.driver"]="c:\geckodriver.exe"

  • パス実行可能ファイルのパスは、あなたの質問への答えです:

    私はあなたのコードブロック内の任意の重要なエラーが表示されません。 Selenium 3.4.3、geckodriver v0.17.0、Mozilla Firefox 53.0、Python 3.6.1でgeckodriverをダウンロードし、マシンのどこにでも保存し、geckodriverの絶対パスをexecutable_pathで設定することを検討できます。

    現在のSelenium-Pythonバインディングはgeckodriverでは不安定であり、アーキテクチャー固有のように見えることに注意してください。ギフトボックスdiscussionmergeがここにあります。 を初期化中だから、さらにfirefox_binary引数としてFirefoxのバイナリの絶対パスを渡す必要がありwebdriverをここ

    私の最後でも実行される独自のコードブロックです:

    from selenium import webdriver 
    from selenium.webdriver.firefox.firefox_binary import FirefoxBinary 
    
    binary = FirefoxBinary('C:\\Program Files\\Mozilla Firefox\\firefox.exe') 
    driver = webdriver.Firefox(firefox_binary=binary, executable_path="C:\\Utility\\BrowserDrivers\\geckodriver.exe") 
    driver.get('https://stackoverflow.com') 
    

    レッツは、私はあなたの質問に答えます。

  • +0

    あなたの答えはありがたいですが、「WebDriverException:一致する機能を見つけることができません。」 – Hobsido

    +0

    @Hobsido 'firefox.exe'と' geckodriver.exe'の正確な絶対パスを指定したことを確認できますか? LinuxまたはWindowsを使用しているシステムはどれですか?おかげで – DebanjanB

    +0

    私はWindows上で動作し、私はチェックした:両方のパスは正しい – Hobsido

    0

    機能を正しく設定していますか?バージョン機能を設定する場合は、バージョン機能が正しいかどうかを確認するか、完全に削除してください。私は以下の話をしています:capabilities.SetCapability( "version"、 "50.0");

    関連する問題