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

Де я можу взяти цей geckodriverвиконуваний файл?


Отримайте його з github.com/mozilla/geckodriver .
edwinksl

Чому команда встановити pip для селену не може просто встановити те, від чого залежить селен?
bgoodr

3
Це питання до технічного обслуговування селену та 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
Той самий метод застосовується і для хромедрівера. :)
Пратік Нагелія

1
хромовідвід тепер можна встановити за допомогою apt-get install -qqy chromedriver.
Ракайм

Якщо це не працює, скопіюйте драйвер gecko в /usr/bin. Це працювало для мене
Прасант Ганесан

cp geckodriver /usr/local/bin/потрібен дозвіл SUDO. Так судо це.
Анбусельван Рокі

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.