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
Check out a this topics
1- If you are using Linux, access the folder containing the file Chromedriver.exe set on 755
2- check correct path for Chromedriver.exe file in your code
3- If you are using Windows servers,check the Chromedriver.exe file is available for the current user (not only the admin does have access to Chromedriver.exe - see in c://users...)
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.
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)
You can find a detailed relevant discussion in:
This worked! I followed these instructions to update PATH: https://www.kenst.com/2015/03/installing-chromedriver-on-mac-osx/
I dragged my chromedriver.exe from Finder into Terminal (/etc/paths), and then copied the address in Terminal and dropped it into my Python IDE where the PATH should be inserted.
Most answers here and in other related posts suggest users to just move the file to /usr/bin
and they work fine if you are just running chromedriver
locally and normally.
However, if you are compiling Python scripts into executables using compilers such as cx_freeze
, you may not be able to afford the luxury if your program always uses a relative link to chromedriver
.
As the error message suggests, your compiled program does not have the permissions to manipulate chromedriver
. To use a relative link to chromedriver
on a Mac in your compiled Python program, you can programmatically change the permission of chromedriver
in your Python script using:
import os
os.chmod('/path/to/chromedriver', 0755) # e.g. os.chmod('/Users/user/Documents/my_project/chromedriver', 0755)
You can test this by doing the following:
cd
to your working directory
$ chmod 755 chromedriver
to allow your program to manipulate it
P.S.
755
is the default numerical permission for files inusr/bin
.664
is the default numerical permission for files in other normal folders (probably your working directory). Thus, whenchromedriver
complains it does not have the correct permission, you need to grant it a numerical permission equivalent to or greater than755
.