J'utilise Ubuntu 16.04.1 LTS. L'exécution de python -V
renvoie Python 2.7.12
. Je construis un serveur virtuel à partir de cela afin d'y installer le paquet Selenium via:
pip install -upgrade Selenium
Mais lorsque vous effectuez une version d'essai avec le script python suivant:
from Selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://seleniumhq.org/')
il en résulte cette erreur:
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
Comme geckodriver
est un fichier exécutable, j’ai conclu qu’il devrait être fourni par l’installation du paquet Selenium via pip
ou au moins une erreur avec un message indiquant ce que je dois faire ensuite. Apparemment non, alors j'ai creusé plus loin: je pensais que peut-être Ubuntu devrait avoir un paquet qui fournit l'exécutable geckodriver
alors j'ai utilisé apt-file search geckodriver
pour le rechercher et je n'ai trouvé aucun résultat.
Où puis-je obtenir cet exécutable geckodriver
?
Trouvez le dernière version pour votre système d'exploitation.
Extrayez-le et copiez geckodriver dans /usr/local/bin
- donc si v0.11.1
était la version la plus récente et que vous utilisiez un linux 64 bits, procédez comme suit:
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/
Votre essai devrait maintenant fonctionner.