Где найти geckodriver, необходимый для пакета Selenium Python?

30

Я использую Ubuntu 16.04.1 LTS. Выполнение python -Vвозвратов Python 2.7.12. Я строю virtualenv из этого, чтобы установить в него пакет Selenium через:

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это исполняемый файл, я пришел к выводу, что он должен быть предоставлен путем установки пакета selenium с помощью pipили, по крайней мере, с сообщением об ошибке, в котором указано, что мне нужно делать дальше. Очевидно, нет, поэтому я продолжил: я подумал, что, возможно, в Ubuntu должен быть пакет, который предоставляет geckodriverисполняемый файл, поэтому я использовал его apt-file search geckodriverдля поиска и не нашел результатов.

Где взять этот geckodriverисполняемый файл?

bgoodr
источник
Получите его с github.com/mozilla/geckodriver .
Edwinksl
Почему команда pip install для selenium не может установить только то, от чего зависит selenium?
bgoodr
3
Это вопрос к сопровождающим Selenium и geckodriver. Все, что я могу сказать, это то, что вам нужно получить geckodriver откуда-то (в данном случае GitHub), кроме PyPI.
edwinksl

Ответы:

44

Найдите последнюю версию для вашей ОС.

Извлеките его и скопируйте в 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/

Теперь ваш пробный запуск должен работать.

Пратик Нагелия
источник
2
Тот же метод применяется и для chromedriver. :)
Пратик Нагелия
1
Теперь можно установить chromedriver с помощью apt-get install -qqy chromedriver.
Ракаим
Если это не работает, скопируйте драйвер gecko в /usr/bin. Это сработало для меня
Прасант Ганесан
cp geckodriver /usr/local/bin/нужно разрешение СУДО. Так что судо это.
Анбусельван Рокки
1

Ubuntu 16.04+:

sudo apt-get install firefox-geckodriver
Krassowski
источник