web-dev-qa-db-fra.com

Message d'erreur: "l'exécutable 'chromedriver' doit être disponible dans le chemin"

J'utilise Selenium avec Python et j'ai téléchargé le logiciel chromedriver pour mon ordinateur Windows à partir de ce site: http://chromedriver.storage.googleapis.com/index.html?path=2.15/

Après avoir téléchargé le fichier Zip, j'ai décompressé le fichier Zip dans mon dossier de téléchargement. Ensuite, je mets le chemin d'accès au fichier binaire exécutable (C:\Utilisateurs\michael\Téléchargements\chromedriver_win32) dans la variable d'environnement "Chemin".

Cependant, quand je lance le code suivant:

  from Selenium import webdriver

  driver = webdriver.Chrome()

... Je continue à recevoir le message d'erreur suivant:

WebDriverException: Message: 'chromedriver' executable needs to be available in the path. Please look at     http://docs.seleniumhq.org/download/#thirdPartyDrivers and read up at http://code.google.com/p/Selenium/wiki/ChromeDriver

Mais - comme expliqué ci-dessus - l'exécutable est (!) Dans le chemin ... que se passe-t-il ici?

83
steady_progress

Vous pouvez vérifier si elle se trouve réellement dans PATH, si vous ouvrez une cmd et tapez chromedriver (en supposant que votre exécutable chromedriver porte toujours le même nom) et appuyez sur Entrée. Si Starting ChromeDriver 2.15.322448 apparaît, le PATH est défini correctement et quelque chose ne va pas.

Sinon, vous pouvez utiliser un chemin direct vers le chromedriver comme ceci:

 driver = webdriver.Chrome('/path/to/chromedriver') 

Donc dans votre cas particulier:

 driver = webdriver.Chrome("C:/Users/michael/Downloads/chromedriver_win32/chromedriver.exe")
99
lmNt

Je vois que les discussions parlent encore de l'ancienne manière de configurer chromedriver en téléchargeant le binaire et en configurant manuellement le chemin.

Ceci peut être fait automatiquement en utilisant webdriver-manager

pip install webdriver-manager

Maintenant, le code ci-dessus dans la question fonctionnera simplement avec le changement ci-dessous,

from Selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())

La même chose peut être utilisée pour configurer Firefox, Edge et les binaires

15
Navarasu

Nous devons ajouter une chaîne de chemin, commencer par la lettre r avant la chaîne, pour chaîne brute J'ai testé de cette façon et ça marche.

driver = webdriver.Chrome(r"C:/Users/michael/Downloads/chromedriver_win32/chromedriver.exe")
9
James0007

Même situation avec pycharm community edition, de même que pour cmd, vous devez redémarrer votre ide pour recharger les variables de chemin. Redémarrez votre ide et ça devrait aller.

6
Andrea Bisello

Lorsque vous décompressez chromedriver, veuillez spécifier un emplacement exact afin de pouvoir le retrouver ultérieurement. Ci-dessous, vous obtenez le bon lecteur chromed pour votre système d’exploitation, puis décompressez-le à un emplacement précis, qui pourrait être fourni comme argument ultérieurement dans votre code.

wget http://chromedriver.storage.googleapis.com/2.10/chromedriver_linux64.Zip unzip chromedriver_linux64.Zip -d /home/virtualenv/python2.7.9/

2
Harshdeep Singh

Quelques entrées/clarifications supplémentaires pour les futurs lecteurs de ce fil, Afin d'éviter de bricoler avec l'env. PATH. variable au niveau Windows et redémarrage du système Windows: (copie de ma réponse à partir de https://stackoverflow.com/a/49851498/9083077 selon Applicable à Chrome):

(1) Téléchargez chromedriver (comme décrit précédemment dans ce fil) et placez le fichier chromedriver.exe (décompressé) dans X:\Dossier\de\votre\choix

(2) Exemple de code Python:

import os;
os.environ["PATH"] += os.pathsep + r'X:\Folder\of\your\choice';

from Selenium import webdriver;
browser = webdriver.Chrome();
browser.get('http://localhost:8000')
assert 'Django' in browser.title

Remarques: (1) Cela peut prendre environ 5 secondes à l'exemple de code (dans la réponse référencée) pour ouvrir le navigateur Firefox pour l'URL spécifiée (2) La console python afficherait l'erreur suivante si il n'y a pas de serveur déjà en cours d'exécution à l'URL spécifiée ou servant une page dont le titre contient la chaîne 'Django': assert 'Django' dans browser.title AssertionError

1
Snidhi Sofpro

Dans mon cas, cette erreur disparaît lorsque j'ai copié le fichier chromedriver dans le dossier c:\Windows. C'est parce que le répertoire windows est dans le chemin que le script python vérifie pour la disponibilité de chromedriver. 

0
Hamid

J'ai rencontré le même problème que le vôtre. J'utilise PyCharm pour écrire des programmes et je pense que le problème réside dans la configuration de l'environnement dans PyCharm plutôt que dans le système d'exploitation. J'ai résolu le problème en accédant à la configuration du script, puis en modifiant manuellement PATH dans les variables d'environnement. J'espère que ceci vous aidera!

0
sia1998

Le meilleur moyen est peut-être de récupérer le répertoire actuel et d'y ajouter l'adresse restante. Comme ce code (Word sur Windows. Sous Linux, vous pouvez utiliser quelque chose de ligne pwd): webdriveraddress = str(os.popen("cd").read().replace("\n", ''))+'\path\to\webdriver'

0
Aidin

Lorsque j'ai téléchargé chromedriver.exe, je l'ai simplement déplacé dans le dossier PATH C:\Windows\System32\chromedriver.exe et j'ai eu exactement le même problème.

Pour moi, la solution consistait simplement à changer de dossier dans PATH. Je viens donc de le déplacer dans le dossier bin Pycharm Community qui se trouvait également dans PATH. ex:

  • C:\Windows\System32\chromedriver.exe -> m'a donné une exception
  • C:\Program Files\JetBrains\Edition PyCharm Community Edition 2019.1.3\bin\chromedriver.exe -> a bien fonctionné
0
Denis Imamovic

Si vous utilisez un interpréteur distant, vous devez également vérifier si son chemin exécutable PATH est défini. Dans mon cas, le passage d'interprète Docker distant à un interprète local a résolu le problème. 

0
Rafał

Vérifiez votre chemin pour le pilote chrome, il pourrait ne pas l'obtenir à partir de là. Il suffit de copier-coller l'emplacement du pilote dans le code.

0
ChandyShot

Si vous travaillez avec le framework de robot RIDE. Vous pouvez ensuite télécharger Chromedriver.exe sur son site officiel et conserver ce fichier .exe dans le répertoire C:\Python27\Scripts. Maintenant, mentionnez ce chemin comme variable d’environnement, par exemple. C:\Python27\Scripts\chromedriver.exe.

Redémarrez votre ordinateur et exécutez à nouveau le même scénario de test. Vous n'obtiendrez plus ce problème.

0
Rahul Tiwari

Selon l'instruction , vous devez inclure le chemin d'accès à ChromeDriver lors de l'instanciation de webdriver.Chrome

driver = webdriver.Chrome('/path/to/chromedriver')
0
AnnaSummerShine

Pourrait essayer de redémarrer l'ordinateur s'il ne fonctionne pas après que vous soyez à peu près sûr que PATH est correctement défini.

Dans mon cas sous Windows 7, j'ai toujours eu l'erreur sur WebDriverException: Message: pour chromedriver, gecodriver, IEDriverServer. Je suis à peu près sûr d'avoir le bon chemin. Redémarrer l'ordinateur, tout fonctionne

0
learningBunny

Avant d’ajouter le chromedriver à votre chemin, assurez-vous que sa version est identique à celle de votre navigateur.

Si ce n'est pas le cas, vous devrez faire correspondre les versions: mettez à jour/rétrogradez votre navigateur, puis mettez à niveau/rétrogradez votre lecteur Web.

Je recommande de mettre à jour votre version de chrome autant que possible, et le webdriver correspondant.

Pour mettre à jour chrome:

  • En haut à droite, cliquez sur les trois points.
  • cliquez sur help -> About Google Chrome
  • mettre à jour la version et redémarrer chrome

Ensuite, téléchargez la version compatible à partir d’ici: http://chromedriver.chromium.org/downloads .

Remarque: le dernier pilote chromé ne correspond pas toujours à la dernière version de chrome!

Maintenant, vous pouvez l'ajouter au PATH:

  1. créez un nouveau dossier quelque part sur votre ordinateur, où vous placerez vos pilotes Web. J'ai créé un dossier nommé webdrivers dans C:\Program Files

  2. copier le chemin du dossier. Dans mon cas c'était C:\Program Files\webdrivers

  3. clic droit sur this PC -> properties:

 enter image description here 

  1. Sur le clic droit Advanced System settings
  2. Cliquez sur Environment Variables
  3. Dans System variables, cliquez sur path et cliquez sur edit
  4. cliquez sur new
  5. coller le chemin que vous avez copié avant
  6. cliquez sur OK sur toutes les fenêtres

C'est tout! J'ai utilisé pycharm et j'ai dû le rouvrir. Peut-être que c'est la même chose avec d'autres IDE ou terminaux.

0
Alon Gouldman

Ajoutez le pilote Web (chromedriver.exe ou geckodriver.exe) ici C:\Windows. Cela a fonctionné dans mon cas

0
Suguresh Soppimath