Saya menggunakan Ubuntu 16.04.1 LTS. Pelaksana python -V
pengembalian Python 2.7.12
. Saya membangun virtualenv dari itu untuk menginstal paket Selenium ke dalamnya melalui:
pip install -upgrade selenium
Tetapi ketika melakukan uji coba jalankan dengan skrip python berikut:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://seleniumhq.org/')
itu menghasilkan kesalahan ini:
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
Karena geckodriver
ini adalah executable, saya menyimpulkan bahwa itu harus disediakan oleh instalasi paket selenium melalui pip
atau setidaknya kesalahan dengan beberapa pesan yang menyatakan apa yang perlu saya lakukan selanjutnya. Ternyata tidak, jadi saya menggali lebih jauh: Saya pikir mungkin Ubuntu harus memiliki paket yang dapat geckodriver
dieksekusi jadi saya biasa apt-file search geckodriver
mencarinya dan tidak menemukan hasil.
Di mana saya bisa menjalankan ini geckodriver
?
Jawaban:
Temukan rilis terbaru untuk OS Anda.
Ekstrak, dan salin geckodriver ke
/usr/local/bin
- jadi jikav0.11.1
itu versi terbaru, dan Anda menggunakan linux 64bit, Anda akan melakukan ini:Sekarang uji coba Anda akan berhasil.
sumber
apt-get install -qqy chromedriver
./usr/bin
. Ini berhasil bagi sayacp geckodriver /usr/local/bin/
membutuhkan izin SUDO. Jadi Sudo itu.Ubuntu 16.04+:
sumber