web-dev-qa-db-fra.com

sélénium - l'exécutable chromedriver doit être dans PATH

Message d'erreur:

l'exécutable 'chromedriver' doit être dans PATH

J'essayais de coder un script en utilisant Selenium dans Pycharm, mais l'erreur ci-dessus s'est produite. J'ai déjà lié mon sélénium à pycharm comme vu ici (frais et à jour) .

Je suis nouveau sur Sélénium, chromedriver n'est-il pas dans le dossier "Sélénium"? Si ce n'est pas le cas, où puis-je le trouver et l'ajouter au chemin?

A propos, j’ai essayé de taper "chromedriver" dans cmd, mais ce n’était pas reconnu comme une commande interne ou externe.

erreur affichée ci-dessous:

Traceback (most recent call last):
  File "C:\Users\sebastian\AppData\Local\Programs\Python\Python35-32\lib\site-packages\Selenium\webdriver\common\service.py", line 64, in start
    stdout=self.log_file, stderr=self.log_file)
  File "C:\Users\sebastian\AppData\Local\Programs\Python\Python35-32\lib\subprocess.py", line 947, in __init__
    restore_signals, start_new_session)
  File "C:\Users\sebastian\AppData\Local\Programs\Python\Python35-32\lib\subprocess.py", line 1224, in _execute_child
    startupinfo)
PermissionError: [WinError 5] Permission denied

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:/Users/sebastian/PycharmProjects/web/bot.py", line 10, in <module>
    browser = webdriver.Chrome("C:/Users/sebastian/desktop/Selenium-3.0.1")
  File "C:\Users\sebastian\AppData\Local\Programs\Python\Python35-32\lib\site-packages\Selenium\webdriver\chrome\webdriver.py", line 62, in __init__
    self.service.start()
  File "C:\Users\sebastian\AppData\Local\Programs\Python\Python35-32\lib\site-packages\Selenium\webdriver\common\service.py", line 76, in start
    os.path.basename(self.path), self.start_error_message)
Selenium.common.exceptions.WebDriverException: Message: 'Selenium-3.0.1' executable may have wrong permissions. Please see https://sites.google.com/a/chromium.org/chromedriver/home

Exception ignored in: <bound method Service.__del__ of <Selenium.webdriver.chrome.service.Service object at 0x01EDEAF0>>
Traceback (most recent call last):
  File "C:\Users\sebastian\AppData\Local\Programs\Python\Python35-32\lib\site-packages\Selenium\webdriver\common\service.py", line 163, in __del__
    self.stop()
  File "C:\Users\sebastian\AppData\Local\Programs\Python\Python35-32\lib\site-packages\Selenium\webdriver\common\service.py", line 135, in stop
    if self.process is None:
AttributeError: 'Service' object has no attribute 'process'
27
Sebastian Nielsen

Vous pouvez télécharger ChromeDriver ici: https://sites.google.com/a/chromium.org/chromedriver/downloads

Ensuite, vous avez plusieurs options :

  • ajoutez-le à votre système path
  • placez-le dans le même répertoire que votre script python
  • spécifier l'emplacement directement via executable_path

    driver = webdriver.Chrome(executable_path='C:/path/to/chromedriver.exe')
    
45
Maximilian Peters

Une autre méthode consiste à télécharger et décompresser chromedriver, puis à placer "chromedriver.exe" dans C:\Python27\Scripts, sans avoir à indiquer le chemin du pilote.

driver= webdriver.Chrome()

marchera

14
thebadguy