¿Dónde encontrar geckodriver que necesita el paquete Selenium Python?


30

Estoy usando Ubuntu 16.04.1 LTS. Ejecutando python -Vdevoluciones Python 2.7.12. Estoy construyendo un virtualenv de eso para instalar el paquete Selenium en él a través de:

pip install -upgrade selenium

Pero cuando se realiza una prueba con el siguiente script de Python:

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

resulta este error:

 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

Como geckodriveres un ejecutable, concluí que debería ser proporcionado por la instalación del paquete de selenio a través de, pipo al menos, un mensaje de error que indique lo que debo hacer a continuación. Aparentemente no, así que busqué más: pensé que quizás Ubuntu debería tener un paquete que proporcione el geckodriverejecutable, así que solía apt-file search geckodriverbuscarlo y no encontré resultados.

¿Dónde consigo este geckodriverejecutable?



¿Por qué el comando pip install para selenium simplemente instala lo que sea que dependa de selenium?
bgoodr

3
Esa es una pregunta para los mantenedores de Selenium y geckodriver. Todo lo que puedo decir es que tienes que obtener geckodriver desde otro lugar (GitHub en este caso) que no sea PyPI.
edwinksl

Respuestas:


44

Encuentra la última versión para tu sistema operativo.

Extraiga y copie geckodriver en /usr/local/bin- así que si v0.11.1fuera la versión más reciente, y estuviera en Linux de 64 bits, haría esto:

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/

Ahora su ejecución de prueba debería funcionar.


2
El mismo método se aplica también para chromedriver. :)
Pratik Nagelia

1
chromedriver ahora se puede instalar con apt-get install -qqy chromedriver.
Rakaim

Si esto no funciona, copie el controlador gecko en /usr/bin. Esto funcionó para mí
Prasanth Ganesan

cp geckodriver /usr/local/bin/necesita permiso de SUDO. Así que sudo.
Anbuselvan Rocky

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.