# 错误消息：“’chromedriver’可执行文件必须在路径中可用”

## 问题：错误消息：“’chromedriver’可执行文件必须在路径中可用”

  from selenium import webdriver

driver = webdriver.Chrome()

…我不断收到以下错误消息：

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

I am using selenium with python and have downloaded the chromedriver for my windows computer from this site: http://chromedriver.storage.googleapis.com/index.html?path=2.15/

After downloading the zip file, I unpacked the zip file to my downloads folder. Then I put the path to the executable binary (C:\Users\michael\Downloads\chromedriver_win32) into the Environment Variable “Path”.

However, when I run the following code:

  from selenium import webdriver

driver = webdriver.Chrome()


… I keep getting the following error message:

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


But – as explained above – the executable is(!) in the path … what is going on here?

## 回答 0

 driver = webdriver.Chrome('/path/to/chromedriver') 

 driver = webdriver.Chrome("C:/Users/michael/Downloads/chromedriver_win32/chromedriver.exe")

You can test if it actually is in the PATH, if you open a cmd and type in chromedriver (assuming your chromedriver executable is still named like this) and hit Enter. If Starting ChromeDriver 2.15.322448 is appearing, the PATH is set appropriately and there is something else going wrong.

Alternatively you can use a direct path to the chromedriver like this:

 driver = webdriver.Chrome('/path/to/chromedriver')


So in your specific case:

 driver = webdriver.Chrome("C:/Users/michael/Downloads/chromedriver_win32/chromedriver.exe")


## 回答 1

pip install webdriver-manager

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())

I see the discussions still talk about the old way of setting up chromedriver by downloading the binary and configuring the path manually.

This can be done automatically using webdriver-manager

pip install webdriver-manager


Now the above code in the question will work simply with below change,

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())


The same can be used to set Firefox, Edge and ie binaries.

## 回答 2

pycharm社区版的情况与此相同，因此对于cmd，必须重新启动ide才能重新加载路径变量。重新启动您的ide，应该没问题。

Same situation with pycharm community edition, so, as for cmd, you must restart your ide in order to reload path variables. Restart your ide and it should be fine.

## 回答 3

sudo apt install chromium-chromedriver

brew cask install chromedriver

On Ubuntu:

sudo apt install chromium-chromedriver


On Debian:

sudo apt install chromium-driver


On macOS install https://brew.sh/ then do

brew cask install chromedriver


## 回答 4

r对于原始字符串，我们必须添加路径字符串，以字符串之前的字母开头。我以这种方式进行了测试，并且有效。

driver = webdriver.Chrome(r"C:/Users/michael/Downloads/chromedriver_win32/chromedriver.exe")

We have to add path string, begin with the letter r before the string, for raw string. I tested this way, and it works.

driver = webdriver.Chrome(r"C:/Users/michael/Downloads/chromedriver_win32/chromedriver.exe")


## 回答 5

（1）下载chromedriver（如本主题前面所述），然后将（解压缩的）chromedriver.exe放在X：\ Folder \ of \ your \ choice中

（2）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

Some additional input/clarification for future readers of this thread, to avoid tinkering with the PATH env. variable at the Windows level and restart of the Windows system: (copy of my answer from https://stackoverflow.com/a/49851498/9083077 as applicable to Chrome):

(1) Download chromedriver (as described in this thread earlier) and place the (unzipped) chromedriver.exe at X:\Folder\of\your\choice

(2) Python code sample:

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


Notes: (1) It may take about 5 seconds for the sample code (in the referenced answer) to open up the Firefox browser for the specified url. (2) The python console would show the following error if there’s no server already running at the specified url or serving a page with the title containing the string ‘Django’: assert ‘Django’ in browser.title AssertionError

## 回答 6

# You can find more recent/older versions at http://chromedriver.storage.googleapis.com/
# Also make sure to pick the right driver, based on your Operating System
wget http://chromedriver.storage.googleapis.com/81.0.4044.69/chromedriver_mac64.zip

unzip chromedriver_mac64.zip
cp chromedriver /usr/local/bin

from selenium import webdriver

browser = webdriver.Chrome()
browser.get('http://localhost:8000')

For Linux and OSX

# You can find more recent/older versions at http://chromedriver.storage.googleapis.com/
# Also make sure to pick the right driver, based on your Operating System


For debian: wget https://chromedriver.storage.googleapis.com/2.41/chromedriver_linux64.zip

Step 2: Add chromedriver to /usr/local/bin

unzip chromedriver_mac64.zip
sudo mv chromedriver /usr/local/bin
sudo chown root:root /usr/local/bin/chromedriver
sudo chmod +x /usr/local/bin/chromedriver


You should now be able to run

from selenium import webdriver

browser = webdriver.Chrome()
browser.get('http://localhost:8000')


without any issues

## 回答 7

wget http://chromedriver.storage.googleapis.com/2.10/chromedriver_linux64.zip unzip chromedriver_linux64.zip -d /home/virtualenv/python2.7.9/ 

When you unzip chromedriver, please do specify an exact location so that you can trace it later. Below, you are getting the right chromedriver for your OS, and then unzipping it to an exact location, which could be provided as argument later on in your code.

wget http://chromedriver.storage.googleapis.com/2.10/chromedriver_linux64.zip unzip chromedriver_linux64.zip -d /home/virtualenv/python2.7.9/ 

## 回答 8

If you are working with robot framework RIDE. Then you can download Chromedriver.exe from its official website and keep this .exe file in C:\Python27\Scripts directory. Now mention this path as your environment variable eg. C:\Python27\Scripts\chromedriver.exe.

Restart your computer and run same test case again. You will not get this problem again.

## 回答 9

driver = webdriver.Chrome('/path/to/chromedriver')

According to the instruction, you need to include the path to ChromeDriver when instantiating webdriver.Chrome eg.:

driver = webdriver.Chrome('/path/to/chromedriver')


## 回答 10

• 在右上角，单击三个点。
• 点击help->About Google Chrome
• 更新版本并重新启动chrome

1. 在您计算机的某个位置创建一个新文件夹，您将在其中放置Web驱动程序。我创建了一个命名的文件夹webdriversC:\Program Files

2. 复制文件夹路径。就我而言C:\Program Files\webdrivers

3. 右键单击this PC-> properties

1. 在右键上 Advanced System settings
2. 请点击 Environment Variables
3. 在中System variables，单击，path然后单击edit
4. 点击 new
5. 粘贴之前复制的路径
6. 在所有窗口上单击确定

Before you add the chromedriver to your path, make sure it’s the same version as your browser.

If not, you will need to match versions: either update/downgrade you chrome, and upgrade/downgrade your webdriver.

I recommend updating your chrome version as much as possible, and the matching the webdriver.

To update chrome:

• On the top right corner, click on the three dots.
• click help -> About Google Chrome
• update the version and restart chrome

Note: The newest chromedriver doesn’t always match the newest version of chrome!

Now you can add it to the PATH:

1. create a new folder somewhere in your computer, where you will place your web drivers. I created a folder named webdrivers in C:\Program Files

2. copy the folder path. In my case it was C:\Program Files\webdrivers

3. right click on this PC -> properties:

1. On the right click Advanced System settings
2. Click Environment Variables
3. In System variables, click on path and click edit
4. click new
5. paste the path you copied before
6. click OK on all the windows

Thats it! I used pycharm and I had to reopen it. Maybe its the same with other IDEs or terminals.

## 回答 11

Could try to restart computer if it doesn’t work after you are quite sure that PATH is set correctly.

In my case on windows 7, I always got the error on WebDriverException: Message: for chromedriver, gecodriver, IEDriverServer. I am pretty sure that i have correct path. Restart computer, all work

## 回答 12

In my case, this error disappears when I have copied chromedriver file to c:\Windows folder. Its because windows directory is in the path which python script check for chromedriver availability.

## 回答 13

If you are using remote interpreter you have to also check if its executable PATH is defined. In my case switching from remote Docker interpreter to local interpreter solved the problem.

## 回答 14

I encountered the same problem as yours. I’m using PyCharm to write programs, and I think the problem lies in environment setup in PyCharm rather than the OS. I solved the problem by going to script configuration and then editing the PATH in environment variables manually. Hope you find this helpful!

## 回答 15

C：\ Windows处添加webdriver（chromedriver.exe或geckodriver.exe）。这对我来说很有效

Add the webdriver(chromedriver.exe or geckodriver.exe) here C:\Windows. This worked in my case

## 回答 16

The best way is maybe to get the current directory and append the remaining address to it. Like this code(Word on windows. On linux you can use something line pwd):  webdriveraddress = str(os.popen("cd").read().replace("\n", ''))+'\path\to\webdriver' 

## 回答 17

• C：\ Windows \ System32 \ chromedriver.exe->给我exceptions
• C：\ Program Files \ JetBrains \ PyCharm Community Edition 2019.1.3 \ bin \ chromedriver.exe->运行正常

When I downloaded chromedriver.exe I just move it in PATH folder C:\Windows\System32\chromedriver.exe and had exact same problem.

For me solution was to just change folder in PATH, so I just moved it at Pycharm Community bin folder that was also in PATH. ex:

• C:\Windows\System32\chromedriver.exe –> Gave me exception
• C:\Program Files\JetBrains\PyCharm Community Edition 2019.1.3\bin\chromedriver.exe –> worked fine

## 回答 18

Mac Mojave运行机器人测试框架和Chrome 77时出现了此问题。这解决了问题。感谢@Navarasu将我指向正确的轨道。

$pip install webdriver-manager --user # install webdriver-manager lib for python$ python # open python prompt

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())

# ctrl+d to exit

Checking for mac64 chromedriver:xx.x.xxxx.xx in cache
...
TypeError: makedirs() got an unexpected keyword argument 'exist_ok'
• 我现在得到了最新的下载链接
• 将chromedriver下载并解压缩到所需位置
• 例如： ~/chromedriver/chromedriver

~/.bash_profile用编辑器打开并添加：

export PATH="$HOME/chromedriver:$PATH"

Had this issue with Mac Mojave running Robot test framework and Chrome 77. This solved the problem. Kudos @Navarasu for pointing me to the right track.

$pip install webdriver-manager --user # install webdriver-manager lib for python$ python # open python prompt


Next, in python prompt:

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())

# ctrl+d to exit


This leads to the following error:

Checking for mac64 chromedriver:xx.x.xxxx.xx in cache
...
TypeError: makedirs() got an unexpected keyword argument 'exist_ok'

• Download and unzip chromedriver to where you want
• For example: ~/chromedriver/chromedriver

Open ~/.bash_profile with editor and add:

export PATH="$HOME/chromedriver:$PATH"


Open new terminal window, ta-da 🎉

## 回答 19

pip install -U selenium

I had this problem on Webdriver 3.8.0 (Chrome 73.0.3683.103 and ChromeDriver 73.0.3683.68). The problem disappeared after I did

pip install -U selenium


to upgrade Webdriver to 3.14.1.

## 回答 20

driver= webdriver.Chrome()

Best way for sure is here:

Download and unzip chromedriver and put ‘chromedriver.exe’ in C:\Python27\Scripts and then you need not to provide the path of driver, just

driver= webdriver.Chrome()


You are done no need to add paths or anything

## 回答 21

Check the path of your chrome driver, it might not get it from there. Simply Copy paste the driver location into the code.

## 回答 22

（对于Mac用户）我有同样的问题，但是我通过以下简单方法解决了：您必须将chromedriver.exe放在执行脚本的同一文件夹中，然后在pyhton中编写以下指令：

os.environ [“ PATH”] + = os.pathsep + r’X：/您的/文件夹/脚本/’

(for Mac users) I have the same problem but i solved by this simple way: You have to put your chromedriver.exe in the same folder to your executed script and than in pyhton write this instruction :

import os

os.environ[“PATH”] += os.pathsep + r’X:/your/folder/script/’