Wo finde ich den für das Selenium Python-Paket benötigten Geckodriver?

30

Ich benutze Ubuntu 16.04.1 LTS. python -VRetouren ausführen Python 2.7.12. Daraus baue ich ein Virtualenv auf, um das Selenium- Paket darin zu installieren :

pip install -upgrade selenium

Aber wenn Sie einen Testlauf mit dem folgenden Python-Skript machen:

from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://seleniumhq.org/')

Es ergibt sich dieser Fehler:

 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

Da geckodriveres sich um eine ausführbare Datei handelt, kam ich zu dem Schluss, dass diese durch die Installation des Selen-Pakets bereitgestellt werden sollte pipoder zumindest durch eine Fehlermeldung, die angibt, was als Nächstes zu tun ist. Anscheinend nicht, also habe ich weiter gegraben: Ich dachte, dass Ubuntu vielleicht ein Paket haben sollte, das die geckodriverausführbare Datei enthält, also habe ich apt-file search geckodriverdanach gesucht und keine Ergebnisse gefunden.

Woher bekomme ich diese geckodriverausführbare Datei?

bgoodr
quelle
Sie können es von github.com/mozilla/geckodriver herunterladen .
Edwinksl
Warum kann der Befehl pip install für Selen nicht einfach das installieren, wovon Selen abhängt?
bgoodr
3
Das ist eine Frage für die Betreuer von Selen und Geckodriver. Ich kann nur sagen, dass Sie Geckodriver von einem anderen Ort (in diesem Fall von GitHub) als PyPI herunterladen müssen.
Edwinksl

Antworten:

44

Finden Sie die neueste Version für Ihr Betriebssystem.

Extrahieren Sie es und kopieren Sie den Geckodriver nach /usr/local/bin- wenn v0.11.1es sich also um die neueste Version handelte und Sie auf 64-Bit-Linux waren, würden Sie dies tun:

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/

Jetzt sollte dein Probelauf funktionieren.

Pratik Nagelia
quelle
2
Gleiches gilt auch für den Chromedriver. :)
Pratik Nagelia
1
chromedriver kann jetzt mit installiert werden apt-get install -qqy chromedriver.
Rakaim
Wenn dies nicht funktioniert, kopieren Sie den Gecko-Treiber nach /usr/bin. Dies funktionierte für mich
Prasanth Ganesan
cp geckodriver /usr/local/bin/benötigt die SUDO-Erlaubnis. Also Sudo es.
Anbuselvan Rocky
1

Ubuntu 16.04+:

sudo apt-get install firefox-geckodriver
krassowski
quelle