Estoy usando Ubuntu 16.04.1 LTS. Ejecutando python -V
devoluciones 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 geckodriver
es un ejecutable, concluí que debería ser proporcionado por la instalación del paquete de selenio a través de, pip
o 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 geckodriver
ejecutable, así que solía apt-file search geckodriver
buscarlo y no encontré resultados.
¿Dónde consigo este geckodriver
ejecutable?
Respuestas:
Encuentra la última versión para tu sistema operativo.
Extraiga y copie geckodriver en
/usr/local/bin
- así que siv0.11.1
fuera la versión más reciente, y estuviera en Linux de 64 bits, haría esto:Ahora su ejecución de prueba debería funcionar.
fuente
apt-get install -qqy chromedriver
./usr/bin
. Esto funcionó para mícp geckodriver /usr/local/bin/
necesita permiso de SUDO. Así que sudo.Ubuntu 16.04+:
fuente