Ich benutze Ubuntu 16.04.1 LTS. python -V
Retouren 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 geckodriver
es sich um eine ausführbare Datei handelt, kam ich zu dem Schluss, dass diese durch die Installation des Selen-Pakets bereitgestellt werden sollte pip
oder 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 geckodriver
ausführbare Datei enthält, also habe ich apt-file search geckodriver
danach gesucht und keine Ergebnisse gefunden.
Woher bekomme ich diese geckodriver
ausführbare Datei?
Antworten:
Finden Sie die neueste Version für Ihr Betriebssystem.
Extrahieren Sie es und kopieren Sie den Geckodriver nach
/usr/local/bin
- wennv0.11.1
es sich also um die neueste Version handelte und Sie auf 64-Bit-Linux waren, würden Sie dies tun:Jetzt sollte dein Probelauf funktionieren.
quelle
apt-get install -qqy chromedriver
./usr/bin
. Dies funktionierte für michcp geckodriver /usr/local/bin/
benötigt die SUDO-Erlaubnis. Also Sudo es.Ubuntu 16.04+:
quelle