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?
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")
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
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")
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.
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/
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
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.
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!
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'
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:
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.
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.
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.
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
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:
help
-> About Google 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:
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
copier le chemin du dossier. Dans mon cas c'était C:\Program Files\webdrivers
clic droit sur this PC
-> properties
:
Advanced System settings
Environment Variables
System variables
, cliquez sur path
et cliquez sur edit
new
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.
Ajoutez le pilote Web (chromedriver.exe ou geckodriver.exe) ici C:\Windows. Cela a fonctionné dans mon cas