Ubuntu 16.04.1 LTSを使用しています。 python -V
を実行すると、Python 2.7.12
が返されます。 Selenium パッケージをインストールするために、それからvirtualenvを構築しています:
pip install -upgrade Selenium
ただし、次のpythonスクリプトを使用して試用を実行する場合:
from Selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://seleniumhq.org/')
このエラーが発生します:
Traceback (most recent call last):
File "/home/myuser/bin/Selenium-experiment.py", line 2, in <module>
browser = webdriver.Firefox()
File "/home/myuser/python_virtualenv/local/lib/python2.7/site-packages/Selenium/webdriver/firefox/webdriver.py", line 135, in __init__
self.service.start()
File "/home/myuser/python_virtualenv/local/lib/python2.7/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.
Exception AttributeError: "'Service' object has no attribute 'process'" in <bound method Service.__del__ of <Selenium.webdriver.firefox.service.Service object at 0x7f782c1caa50>> ignored
geckodriver
は実行可能ファイルであるため、pip
を介したSeleniumパッケージのインストールによって提供されるか、少なくとも次に何をする必要があるかを示すメッセージでエラー出力する必要があると結論付けました。明らかにそうではないので、さらに掘り下げました。おそらく、Ubuntuにはgeckodriver
実行可能ファイルを提供するパッケージがあるはずなので、apt-file search geckodriver
を使用して検索しましたが、結果は見つかりませんでした。
このgeckodriver
実行可能ファイルはどこで入手できますか?
OSの 最新リリース を見つけます。
それを抽出して、geckodriverを/usr/local/bin
にコピーします。したがって、v0.11.1
が最新バージョンで、64ビットLinuxを使用している場合は、次のようにします。
export GECKO_DRIVER_VERSION='v0.24.0'
wget https://github.com/mozilla/geckodriver/releases/download/$GECKO_DRIVER_VERSION/geckodriver-$GECKO_DRIVER_VERSION-linux64.tar.gz
tar -xvzf geckodriver-$GECKO_DRIVER_VERSION-linux64.tar.gz
rm geckodriver-$GECKO_DRIVER_VERSION-linux64.tar.gz
chmod +x geckodriver
cp geckodriver /usr/local/bin/
これで、試用版が動作するはずです。