Estou usando o Ubuntu 16.04.1 LTS. Executando python -V
devoluções Python 2.7.12
. Estou construindo um virtualenv a partir disso para instalar o pacote Selenium nele via:
pip install -upgrade selenium
Mas, ao fazer uma avaliação, execute o seguinte script python:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://seleniumhq.org/')
resulta este erro:
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
é um executável, concluí que ele deve ser fornecido pela instalação do pacote selenium por meio de pip
ou pelo menos erro com alguma mensagem informando o que preciso fazer a seguir. Aparentemente não, então procurei mais: pensei que talvez o Ubuntu deveria ter um pacote que forneça o geckodriver
executável, então eu costumava apt-file search geckodriver
procurá-lo e não encontrei resultados.
Onde obtenho esse geckodriver
executável?
Respostas:
Encontre a versão mais recente do seu sistema operacional.
Extraia e copie o geckodriver para
/usr/local/bin
- então, sev0.11.1
era a versão mais recente e você estava no Linux de 64 bits, faria o seguinte:Agora sua execução de teste deve funcionar.
fonte
apt-get install -qqy chromedriver
./usr/bin
. Isso funcionou para mimcp geckodriver /usr/local/bin/
precisa de permissão SUDO. Então Sudo.Ubuntu 16.04+:
fonte