Dove trovare geckodriver necessario per il pacchetto Selenium Python?


30

Sto usando Ubuntu 16.04.1 LTS. Esecuzione di python -Vresi Python 2.7.12. Sto costruendo un virtual off di quello per installare il pacchetto Selenium tramite:

pip install -upgrade selenium

Ma quando si esegue una versione di prova con il seguente script Python:

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

risulta questo errore:

 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

Poiché geckodriverè un eseguibile, ho concluso che dovrebbe essere fornito dall'installazione del pacchetto di selenio tramite pipo almeno un errore con qualche messaggio che indica cosa devo fare dopo. Apparentemente no, quindi ho approfondito: ho pensato che forse Ubuntu avrebbe dovuto avere un pacchetto che fornisce l' geckodrivereseguibile, quindi cercavo e non ho apt-file search geckodrivertrovato risultati.

Dove trovo questo geckodrivereseguibile?



Perché il comando pip install per selenio non può installare qualsiasi cosa dipenda dal selenio?
bgoodr,

3
Questa è una domanda per i manutentori del selenio e del geckodriver. Tutto quello che posso dire è che devi ottenere geckodriver da qualche parte (GitHub in questo caso) diverso da PyPI.
edwinksl,

Risposte:


44

Trova l' ultima versione per il tuo sistema operativo.

Estrai e copia geckodriver su /usr/local/bin- quindi se v0.11.1fosse la versione più recente e tu fossi su Linux a 64 bit, faresti questo:

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/

Ora la corsa di prova dovrebbe funzionare.


2
Lo stesso metodo vale anche per chromedriver. :)
Pratik Nagelia,

1
chromedriver ora può essere installato con apt-get install -qqy chromedriver.
Rakaim,

Se non funziona, copia il driver gecko in /usr/bin. Questo ha funzionato per me
Prasanth Ganesan il

cp geckodriver /usr/local/bin/necessita dell'autorizzazione SUDO. Quindi Sudo.
Anbuselvan Rocky,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.