Search code examples
pythonseleniumselenium-webdriverwebdriverselenium-chromedriver

Selenium on MAC, Message: 'chromedriver' executable may have wrong permissions


I'm just trying to do something very basic on my Mac using selenium and I can't even open a webpage. I'm getting an error of :

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

Here is my code below:

from selenium import webdriver
import time

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

driver.quit()

Solution

  • The error says it all :

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

    The error clearly mentions that the chromedriver which is getting detected have wrong permissions.


    Solution

    • Download the latest chromedriver binary from ChromeDriver - WebDriver for Chrome and save it in your system.
    • Ensure that chromedriver binary have the required permissions.
    • While initiating the WebDriver and WebClient pass the argument executable_path along with the absolute path of the chromedriver binary as follows :

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

    Reference

    You can find a detailed relevant discussion in: