web-dev-qa-db-fra.com

Selenium sur MAC, Message: l'exécutable 'chromedriver' peut avoir des autorisations erronées

J'essaie simplement de faire quelque chose de très basique sur mon Mac en utilisant Selenium et je ne peux même pas ouvrir une page Web. Je reçois une erreur de:

Traceback (most recent call last):
  File "/Users/godsinred/Desktop/InstagramLiker/GmailAccountGenerator.py", line 10, in <module>
    driver = webdriver.Chrome()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Selenium/webdriver/chrome/webdriver.py", line 68, in __init__
    self.service.start()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Selenium/webdriver/common/service.py", line 88, in start
    os.path.basename(self.path), self.start_error_message)
Selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable may have wrong permissions. Please see https://sites.google.com/a/chromium.org/chromedriver/home

Voici mon code ci-dessous:

from Selenium import webdriver
import time

link = "https://accounts.google.com"
driver = webdriver.Chrome()
driver.get(link)
time.sleep(5)

driver.quit()
2
Jonathan Ishii

L'erreur dit tout:

Selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable may have wrong permissions. Please see https://sites.google.com/a/chromium.org/chromedriver/home

L'erreur indique clairement que les chromedriver qui sont détectés ont des autorisations erronées.

Solution

  • Téléchargez le dernier binaire chromedriver à partir de ChromeDriver - WebDriver for Chrome et enregistrez-le sur votre système.
  • Assurez-vous que chromedriver binary dispose des autorisations requises.
  • Lors du lancement des WebDriver _ et WebClient, transmettez l'argument executable_path ainsi que le chemin absolu du binaire chromedriver comme suit:

    from Selenium import webdriver
    
    link = "https://accounts.google.com"
    driver = webdriver.Chrome(executable_path='/path/to/chromedriver')
    driver.get(link)
    
2
DebanjanB

Cela a fonctionné! J'ai suivi ces instructions pour mettre à jour PATH: https://www.kenst.com/2015/03/installing-chromedriver-on-mac-osx/

J'ai fait glisser mon chromedriver.exe du Finder dans Terminal (/ etc/path), puis j'ai copié l'adresse dans Terminal et l'a déposée dans mon Python IDE où le PATH doit être inséré.

1
meng1313

La plupart des réponses ici et dans d'autres publications connexes suggèrent aux utilisateurs de simplement déplacer le fichier vers /usr/bin et ils fonctionnent correctement si vous exécutez simplement chromedriver localement et normalement. 

Toutefois, si vous compilez des scripts Python dans des exécutables à l'aide de compilateurs tels que cx_freeze, vous ne pourrez peut-être pas vous offrir ce luxe si votre programme utilise toujours un lien relatif à chromedriver.

Comme le message d'erreur le suggère, votre programme compilé ne dispose pas des autorisations pour manipuler chromedriver. Pour utiliser un lien relatif vers chromedriver sur un Mac dans votre programme Python compilé, vous pouvez modifier par programme l'autorisation de chromedriver dans votre script Python à l'aide de:

import os
os.chmod('/path/to/chromedriver', 0755) # e.g. os.chmod('/Users/user/Documents/my_project/chromedriver', 0755)

Vous pouvez tester cela en procédant comme suit:

  1. cd dans votre répertoire de travail

  2. $ chmod 755 chromedriver pour permettre à votre programme de le manipuler

P.S. 755 est l'autorisation numérique par défaut pour les fichiers dans usr/bin. 664 est l'autorisation numérique par défaut pour les fichiers situés dans d'autres dossiers normaux (probablement votre répertoire de travail). Ainsi, lorsque chromedriver se plaint de ne pas disposer de la bonne permission, vous devez lui accorder une permission numérique égale ou supérieure à 755.

0
Jatt