Di mana menemukan geckodriver yang dibutuhkan oleh paket Selenium Python?

30

Saya menggunakan Ubuntu 16.04.1 LTS. Pelaksana python -Vpengembalian 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 geckodriverini adalah executable, saya menyimpulkan bahwa itu harus disediakan oleh instalasi paket selenium melalui pipatau 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 geckodriverdieksekusi jadi saya biasa apt-file search geckodrivermencarinya dan tidak menemukan hasil.

Di mana saya bisa menjalankan ini geckodriver?

bgoodr
sumber
Dapatkan dari github.com/mozilla/geckodriver .
edwinksl
Mengapa tidak bisa menginstal perintah install untuk selenium hanya menginstal apa pun yang bergantung pada selenium?
bgoodr
3
Itu pertanyaan untuk pengelola Selenium dan tokekriver. Yang bisa saya katakan adalah Anda harus mendapatkan geckodriver dari suatu tempat (GitHub dalam kasus ini) selain PyPI.
edwinksl

Jawaban:

44

Temukan rilis terbaru untuk OS Anda.

Ekstrak, dan salin geckodriver ke /usr/local/bin- jadi jika v0.11.1itu versi terbaru, dan Anda menggunakan linux 64bit, Anda akan melakukan ini:

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/

Sekarang uji coba Anda akan berhasil.

Pratik Nagelia
sumber
2
Metode yang sama berlaku untuk chromedriver juga. :)
Pratik Nagelia
1
chromedriver sekarang dapat diinstal dengan apt-get install -qqy chromedriver.
Rakaim
Jika ini tidak berhasil, salin driver tokek ke /usr/bin. Ini berhasil bagi saya
Prasanth Ganesan
cp geckodriver /usr/local/bin/membutuhkan izin SUDO. Jadi Sudo itu.
Anbuselvan Rocky
1

Ubuntu 16.04+:

sudo apt-get install firefox-geckodriver
krassowski
sumber