Test avec Selenium et Python : corriger l'erreur 'geckodriver' executable needs to be in PATH
L'outil Selenium permet d'automatiser le test d'applications web dans les navigateurs. Mais il peut engendrer un problème lors de son utilisation avec Firefox.
Le framework Selenium est un outil très utile pour tester vos applications web. Il permet en effet d'automatiser le navigateur afin de le faire interagir de manière scriptée avec des pages. Il est compatible avec la plupart des navigateurs populaires du marché. Pour pouvoir commander le navigateur Firefox, vous devez faire appel à la classe "Geckodriver". L'erreur "selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH." se corrige en modifiant la variable PATH du système d'exploitation.
La variable PATH contient les chemins vers les exécutables pouvant être utilisés en ligne de commande dans le système d'exploitation. Le framework Selenium a besoin que le chemin vers le driver soit présent dans le PATH pour fonctionner. Après avoir téléchargé le driver (on peut trouver la dernière version en suivant ce lien : https://github.com/mozilla/geckodriver/releases), ouvrez l'archive pour en extraire le contenu. Vous devez ensuite modifier la variable PATH pour ajouter le chemin vers le dossier contenant l'exécutable. La démarche dépend de votre système d'exploitation.
Si vous travaillez depuis un système basé sur Unix (Linux, Mac…), utilisez dans un terminal la commande "export" pour ajouter un chemin à la variable PATH.
export PATH=$PATH:/chemin/vers/le/dossier/de/geckodriver
Si vous travaillez avec Windows, il y a deux méthodes pour modifier la variable PATH. La méthode la plus rapide consiste à ouvrir l'invite de commande en tant qu'administrateur et à utiliser la commande "setx".
setx path "%path%;c:\chemin\vers\le\dossier\de\geckodriver"
Vous pouvez également modifier le contenu de la variable PATH depuis l'interface de Windows. Cliquez avec le bouton droit sur le menu démarrer et rendez-vous dans le menu "Système". Ouvrez le menu "Paramètres système avancés". Cliquez sur le bouton "Variables d'environnement" et cherchez dans la liste la variable PATH. Cliquez sur "Modifier" pour pouvoir modifier le contenu de la variable.
Pour ces deux méthodes, vous devez redémarrer l'ordinateur pour que la modification soit prise en compte.
Si vous avez installé Firefox dans un autre répertoire que le répertoire par défaut, vous devez indiquer à Selenium l'exécutable de Firefox. Sinon vous aurez une erreur avec ce message : " selenium.common.exceptions.WebDriverException: Message: Expected browser binary location, but unable to find binary in default location, no 'moz:firefoxOptions.binary' capability provided, and no binary flag set on the command line". On fait appel pour cela à la classe "FirefoxBinary" et on spécifie l'objet créé en paramètre du constructeur du Webdriver.
from selenium import webdriver from selenium.webdriver.firefox.firefox_binary import FirefoxBinary monExecutable = FirefoxBinary('chemin/vers/l'exécutable/de/Firefox') browser = webdriver.Firefox(firefox_binary= monExecutable)