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?



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.


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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.