web-dev-qa-db-ja.com

「geckodriver」実行可能ファイルはPATHにある必要があります

Mac OSユーザーはこちら。 python IDLEでコマンドを実行しようとしています:

from Selenium import webdriver
browser = webdriver.Firefox()

次のエラーメッセージが表示されます。

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Selenium/webdriver/common/service.py", line 76, in start
    stdin=PIPE)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 709, in __init__
    restore_signals, start_new_session)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 1344, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'geckodriver': 'geckodriver'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    browser = webdriver.Firefox()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Selenium/webdriver/firefox/webdriver.py", line 160, in __init__
    self.service.start()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Selenium/webdriver/common/service.py", line 83, in start
    os.path.basename(self.path), self.start_error_message)
Selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.

私は走ったbrew install geckodriverwhich geckodriver 戻り値 /usr/local/bin/geckodriverですから、正しくインストールされているはずです。それでもまだ正常に動作していないようですが?

4
doctopus

エラーメッセージは非常に明確です。

FileNotFoundError: [Errno 2] No such file or directory: 'geckodriver': 'geckodriver'

geckodriverへのパスを設定する必要があります。それにはさまざまな方法があります。

コードでgeckodriverへのパスを設定できます。

from Selenium import webdriver
browser = webdriver.Firefox(executable_path=r'/.../path2Your/geckodriver')

または[〜#〜] path [〜#〜]環境変数にgeckodriverへのパスを挿入します:

export PATH=$PATH:/.../path2Your/geckodriver

Mac OSの/usr/local/bin/で実行可能ファイルを移動しようとしたことはありません。私はubuntu osで試してみましたが、うまくいきます。大丈夫だと思います。

おそらく、ファイルが実行可能ではないためです。そうでない場合は、/usr/local/bin/に移動して実行可能にします。

chmod +x geckodriver
7
Davide Patti

私にとって最も効果的なことの1つは、実行可能なgeckodriverファイルをコピーすることです。

Binフォルダーに移動します。

Linuxの場合は、以下の場所にあります。

/home/user_name/.local/bin

ここにgeckodriver exeを貼り付けます。

したがって、最終的なコードは次のようになります。

    from Selenium import webdriver
    driver = webdriver.Firefox(executable_path = 'geckodriver')

これは魅力のように私にとってはうまくいきましたが、それが正しい方法であるかどうかはわかりません。

0
santosh