我正在使用python和selenium,并从这个网站下载了用于我的windows计算机的chromedriver: http://chromedriver.storage.googleapis.com/index.html?path=2.15/

下载压缩文件后,我将压缩文件解压缩到我的下载文件夹中。然后我把可执行二进制文件(C:\Users\michael\Downloads\chromedriver_win32)的路径放到环境变量“path”中。

然而,当我运行以下代码:

  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

但是-如上所述-可执行文件在路径中(!)…这是怎么回事?


你可以测试它是否真的在PATH中,如果你打开cmd并输入chromedriver(假设你的chromedriver可执行文件仍然是这样命名的)并按Enter。如果出现“Starting ChromeDriver 2.15.322448”,说明PATH设置正确,还有其他问题。

或者,你可以像这样使用一个直接路径到chromedriver:

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

所以在你的具体情况下

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

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

当你解压缩chromedriver时,请指定一个确切的位置,以便以后可以跟踪它。下面,您将为您的操作系统获得正确的chromedriver,然后将其解压缩到一个确切的位置,这可以在稍后的代码中作为参数提供。

wget http://chromedriver.storage.googleapis.com/2.10/chromedriver_linux64.zip unzip余下

可以尝试重新启动计算机,如果它不工作后,你很确定的路径设置正确。

在我的情况下,在windows 7,我总是得到WebDriverException: Message: for chromedriver, gecodriver, IEDriverServer的错误。我很确定我的路径是正确的。重启电脑,一切正常

我们必须添加路径字符串,以字符串前的字母r开头,对于原始字符串。我用这种方法进行了测试,它是有效的。

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

如果你正在使用机器人框架RIDE。然后你可以从官网下载Chromedriver.exe,并将这个。exe文件保存在C:\Python27\Scripts目录下。现在将此路径作为环境变量。C: \ Python27 \ \ chromedriver.exe的脚本。

重新启动计算机并再次运行相同的测试用例。你不会再遇到这样的问题了。

为将来的读者提供一些额外的输入/澄清, 以避免修补PATH环境。变量在Windows级别和重新启动Windows系统: (复制我的答案从https://stackoverflow.com/a/49851498/9083077适用于Chrome):

(1)下载chromedriver(如本线程前面所述),并将(解压缩)chromedriver.exe放在X:\文件夹\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

注: (1)示例代码(在参考答案中)可能需要大约5秒钟才能打开指定url的Firefox浏览器。 (2)如果没有服务器在指定的url上运行,或者没有包含字符串'Django'的页面,python控制台将显示以下错误: 在browser.title中断言“Django” AssertionError

在我的例子中,当我将chromedriver文件复制到c:\Windows文件夹时,这个错误就消失了。这是因为windows目录在python脚本检查chromedriver可用性的路径中。

根据指令,当实例化webdriver时,你需要包含到ChromeDriver的路径。如铬。

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

(Mac用户) 我也有同样的问题,但我用这个简单的方法解决了: 你必须把你的chromedriver.exe放在你执行脚本的同一个文件夹中,然后在pyhton中写以下指令:

import os

操作系统。环境[“路径”]+= os。[参考文献]

我看到讨论仍然在讨论通过下载二进制文件和手动配置路径来设置chromedriver的旧方法。

这可以使用webdriver-manager自动完成

pip install webdriver-manager

现在问题中的上述代码将简单地与下面的更改一起工作,

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

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

同样可以用来设置Firefox、Edge和ie二进制文件。

如果你正在使用远程解释器,你还必须检查它的可执行路径是否定义。在我的例子中,从远程Docker解释器切换到本地解释器解决了这个问题。

检查你的chrome驱动程序的路径,它可能不会从那里得到它。 只需复制粘贴驱动程序位置到代码。

在将chromedriver添加到路径之前,请确保它与浏览器的版本相同。

如果不是,你需要匹配版本:更新/降级你的chrome浏览器,升级/降级你的webdriver。

我建议更新你的chrome版本尽可能多,并匹配的网络驱动程序。

更新chrome浏览器:

在右上角,点击三个点。 点击help ->关于谷歌Chrome 更新版本并重新启动chrome

请从这里下载兼容版本:http://chromedriver.chromium.org/downloads 。

注意:最新的chromedriver并不总是匹配最新版本的chrome!

现在你可以把它添加到PATH:

在你电脑的某个地方创建一个新文件夹,在那里你将放置你的网络驱动程序。 我在C:\Program Files中创建了一个名为webdrivers的文件夹 复制文件夹路径。对我来说,是C:\Program Files\webdrivers 右键点击这台PC ->属性:

2 .右键单击“Advanced System settings” 单击环境变量 在“系统变量”中,单击“路径”,然后单击“编辑” 单击new 粘贴之前复制的路径 在所有窗口上单击OK

这就是它!我用了pycharm,不得不重新打开。也许其他ide或终端也一样。

我遇到了和你一样的问题。 我使用PyCharm来编写程序,我认为问题在于PyCharm中的环境设置,而不是操作系统。 我通过转到脚本配置,然后手动编辑环境变量中的PATH解决了这个问题。 希望这对你有帮助!

在C:\Windows. exe中添加webdriver(chromedriver.exe或geckodriver.exe)。 这对我来说很管用

最好的方法可能是获取当前目录,并将剩余的地址附加到该目录。 比如下面的代码(windows上的Word。在linux上,你可以使用line pwd): Webdriveraddress = str(os.popen("cd").read()。替换(“\ n ", ''))+'\ 路径\ \ webdriver '

当我下载chromedriver.exe时,我只是将它移动到PATH文件夹C:\Windows\System32\chromedriver.exe,并有完全相同的问题。

对我来说,解决方案是改变PATH中的文件夹,所以我只是在Pycharm Community bin文件夹中移动它,这也是在PATH中。 例:

C:\Windows\System32\chromedriver.exe——>给我一个异常 C:\Program Files\JetBrains\PyCharm社区版 2019.1.3\bin\chromedriver.exe—>运行正常

在Ubuntu上:

sudo apt install chromium-chromedriver

在Debian上:

sudo apt install chromium-driver

在macOS上安装Homebrew,然后执行

brew install --cask chromedriver

我在Webdriver 3.8.0 (Chrome 73.0.3683.103和ChromeDriver 73.0.3683.68)上遇到了这个问题。我这么做之后,问题就消失了

pip install -U selenium

将Webdriver升级到3.14.1。

最好的方法是:

下载并解压chromedriver,并将'chromedriver.exe'放在C:\Python27\Scripts中,然后您不需要提供驱动程序的路径,只需

driver= webdriver.Chrome()

你已经完成了,不需要添加路径或任何东西

适用于Linux和OSX

步骤1:下载chromedriver

# 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

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

步骤2:将chromedriver添加到/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

您现在应该可以运行了

from selenium import webdriver

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

没有任何问题

适用于mac osx用户

    brew tap homebrew/cask
    brew cask install chromedriver

另一种方法是下载并解压chromedriver,并将'chromedriver.exe'放在C:\Program Files\Python38\Scripts中,然后你不需要提供驱动程序的路径,只需

司机= webdriver.Chrome ()

正如Aphid在他的评论中提到的,如果你想手动完成,你必须只包括你的webdriver存储的目录,而不是可执行文件:

例子:

正确的:

路径=$PATH:/路径/到/网络驱动程序/文件夹

错误的:

PATH=$PATH:/path/to/webdriver/chromedriver.exe


Windows系统变量和CMD测试:

MAC用户:

下载Chromedriver: https://sites.google.com/a/chromium.org/chromedriver/downloads

2.在终端输入“sudo nano /etc/paths”

3.添加一行Cromedriver的路径,例如:"/Users/username/Downloads"

试着再运行一次测试!

可执行路径已弃用!

如果你得到exectuable_path ash been deprecated警告,下面是修复…

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
def test_me(my_name):
    s=Service(ChromeDriverManager().install())    
    chrome_driver = webdriver.Chrome(service=s)
    ...

简单的解决方案是下载chrome驱动程序并移动 将可执行文件转移到运行python文件的文件夹。

在最近的版本中,创建chromedriver的首选方式是使用服务。

手动设置路径,如下所示:

chromedriver_path = "path to your chromedriver executable>"

service = Service(chromedriver_path)
driver = webdriver.Chrome(service=service)

测试后检查ChromeDriver是否已安装

chromedriver

你应该看到

Starting ChromeDriver version.number 
ChromeDriver was successful

检查ChromeDriver的路径

which chromedriver

在代码中使用Path

...
from selenium import webdriver

options = Options()
options.headless = True
options.add_argument('windows-size=1920x1080')

path   = '/usr/local/bin/chromedriver'
driver = webdriver.Chrome(path, options=options)

PIP安装webdriver-manager

如果使用python3运行脚本:

安装webdriver-manager

然后在脚本中请使用:

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