web-dev-qa-db-ja.com

geckodriverをPATHに入れる方法は?

私はOS Sierraを使用していて、Python 3.5.2。Seleniumをインストールしていて、「Pythonで退屈なタスクを自動化する」という本を読んでいます

私のコードは

from Selenium import webdriver
>>> browser = webdriver.Firefox()

エラーが表示される

Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/Selenium/webdriver/common/service.py", line 64, in start
stdout=self.log_file, stderr=self.log_file)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/subprocess.py", line 947, in __init__
restore_signals, start_new_session)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/subprocess.py", line 1551, in _execute_child
raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'geckodriver'

During handling of the above exception, another exception occurred:

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

私は自分の問題の解決策を幅広く探しました。多くの人が同じ問題を抱えています。しかし、どのソリューションも機能していません。私はPythonフォルダー内のどこにでもgeckodriverをコピーしました。ターミナルを使用してみましたが、コード内でパスを指定しようとしましたが、エラーが発生します。 「これが間違った形式の場合は申し訳ありませんが、私は何をしているのかわかりません。

12
Matthew Garcia

私はこの同じ問題に直面しました、そして、私はそれをどのように修正したかです:

  1. geckodriverhere からダウンロードします
  2. geckodriverファイルを解凍して解凍し、/usr/local/bin/ディレクトリに移動します
  3. Selenium Firefox webdriverを使用してpythonプログラムを実行します。
20
kiran.koduru

この回答は、「プログラムをパスに追加する」というGoogle検索で簡単に解決できます。

export PATH=$PATH:/path/to/geckodriver
2
ddavison

「Pythonフォルダー内のすべての場所にgeckodriverをコピーしました。]」

import sys
print sys.path

そして、問題を解決する必要があります。

1
TheoretiCAL