Après avoir installé Selenium dans Ubuntu et ajouté geckodriver à path, le message d'erreur suivant s'affiche:
from Selenium import webdriver
driver = webdriver.Firefox()
erreur:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/Selenium/webdriver/firefox/webdriver.py", line 135, in __init__
self.service.start()
File "/usr/local/lib/python2.7/dist-packages/Selenium/webdriver/common/service.py", line 64, in start
stdout=self.log_file, stderr=self.log_file)
File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
raise child_exception
OSError: [Errno 20] Not a directory
Que se passe-t-il?
EDIT: résolu en utilisant chromedriver au lieu de geckodriver.
Avait le même problème. Il y avait deux façons de résoudre ce problème pour moi:
Ajoutez executable_path arg dans webdriver:
driver = webdriver.Firefox(executable_path='/path/to/geckodriver')
Et la deuxième façon consiste à ajouter un dossier contenant geckodriver à l'aide de l'exportation (uniquement le dossier, pas geckodriver):
$ export PATH=$PATH:/path/to/
Outre la réponse de @Poloq, le moyen le plus simple serait de conserver votre binaire geckodriver
dans un répertoire qui se trouve déjà dans votre PATH
.
mv geckodriver /usr/local/bin
De cette façon, vous pouvez éviter des paramètres/configurations supplémentaires dans votre projet, avec l'inconvénient d'avoir une étape supplémentaire lors du déploiement sur différents systèmes.
Le problème est que vous avez renommé "geckodriver" en "wire".
La solution consiste à ajouter "geckodriver" au chemin de recherche, cela devrait alors fonctionner.
Outre les réponses fournies, il existe également cette option dans laquelle vous pouvez copier le pilote dans /usr/bin
:
Sudo cp geckodriver /usr/bin