zip文件,我将zip文件解压缩到我的下载文件夹中。然后,我将可执行二进制文件(C:\ Users \ michael \ Downloads \ chromedriver_win32)的路径放入环境变量“路径”。
但是,当我运行以下代码时:
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
但是-如上所述,可执行文件是(!)在路上...这是怎么回事?
#1 楼
您可以测试它是否确实在PATH中,如果打开cmd并键入chromedriver
(假设您的chromedriver可执行文件仍以此命名),然后按Enter。如果出现Starting ChromeDriver 2.15.322448
,则说明PATH设置正确,并且出了点问题。或者,您也可以使用指向chromedriver的直接路径,如下所示: />
在您的特定情况下:
driver = webdriver.Chrome('/path/to/chromedriver')
评论
感谢您的回答:确实出现了“正在启动ChromeDriver 2.15.322448”。 “仅允许本地连接。”也出现了。 ...但是我想这可以吗? ....我想知道的是:网站上只有chromedriver的32位版本可用....但这在我的64位Windows上应该可以正常工作,不是吗?
–steady_progress
15年4月24日在23:02
@steady_progress是的,没关系。这将适用于64位Windows。我自己用的。我怀疑硒版本可能引起此问题?您安装了哪一个?您是否使用pip安装了它?
–lmNt
2015年4月24日23:07
如我在答案中提到的那样,在调用webdriver时是否尝试过使用驱动程序的直接路径?它是否因相同的错误而失败?
–lmNt
15年4月24日在23:15
将Webdriver添加到PATH时,无论使用哪种操作系统,都仅包含Webdriver的存储目录,而不包括可执行文件。例如:PATH = $ PATH:/ path / to / webdriver / folder,而不是PATH = $ PATH:/ path / to / webdriver / chromedriver。此外,使用PATH比将位置传递到webdriver.Chrome()调用更具可移植性,因为我们始终可以假设在运行代码的任何位置都正确设置了PATH,但是我们不能假设它们的文件结构设置相同。
–蚜虫
18年1月2日在18:28
尝试使用相同的解决方案,但出现此错误:WebDriverException:消息:“ chromedriver.exe”可执行文件可能具有错误的权限。请参阅sites.google.com/a/chromium.org/chromedriver/home
–约格什
19年6月3日在9:45
#2 楼
我看到讨论仍然在讨论通过下载二进制文件并手动配置路径来设置chromedriver的旧方法。这可以使用webdriver-manager
pip install webdriver-manager
自动完成现在问题中的上述代码仅需进行以下更改即可使用,
即二进制文件。
评论
@Navarasu,在所有适当的尊重下,为什么当当前值为3.7时,有人会跟随3.6的内容。下次最好明确地指出它适用于3.6 ....谢谢
– AzySır
19-2-18在23:33
这很棒,因为它也保持最新
–莱斯利·奥尔德里奇(Leslie Alldridge)
19年6月18日在17:59
该解决方案的优点是,它比基于特定路径设置的其他解决方案具有更大的灵活性,对于在多台计算机上使用脚本而言,我认为这是不切实际的。
– IBRAHIM
6月28日20:40
我在Azure Databricks中尝试此操作,并引发以下错误ValueError:无法使用以下命令获得Chrome的版本:google-chrome --version || google-chrome-stable --version。我该怎么办?
–jeppoo1
10月2日,11:34
非常感谢@Navarasu,您救了我的命!
–伊凡·乌萨尔科(Ivan Usalko)
12月5日0:00
#3 楼
在Ubuntu上:sudo apt install chromium-chromedriver
在Debian上:
sudo apt install chromium-driver
在macOS上,安装https://brew.sh/然后执行
brew cask install chromedriver
评论
然后使用:driver = webdriver.Chrome('/ usr / lib / chromium-browser / chromedriver')..而不更改$ PATH
–炼金术
4月14日22:44
@alchemy您确定需要这样做吗?我记得,driver = webdriver.Chrome()对我来说很好用。
–鲍里斯(Boris)
4月14日22:45
嗨,鲍里斯,是的,不确定为什么。即使没有添加到PATH,它也无法正常工作。我确定正确设置路径会更好,但是我只需要快速使用Chromedriver做一件事
–炼金术
4月14日22:51
#4 楼
pycharm社区版的情况与此相同,因此,对于cmd,必须重新启动ide才能重新加载路径变量。重新启动您的ide,应该没问题。评论
谢谢。我在Visual Studios中遇到了同样的问题。刚刚重新启动IDE,它的工作:)谢谢
–DollarAkshay
16年7月1日在10:53
#5 楼
对于原始字符串,我们必须添加路径字符串,以字符串前面的字母r
开头。我以这种方式进行了测试,并且可以正常工作。driver = webdriver.Chrome(r"C:/Users/michael/Downloads/chromedriver_win32/chromedriver.exe")
#6 楼
对于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')
没有任何问题
评论
明确指出他正在使用Windows,这是针对Linux的。
– misantroop
5月14日2:58
@misantroop我已经更新了我的答案以使其更清楚。
– Giorgos Myrianthous
5月14日13:57
#7 楼
为以后的该线程的读者提供一些额外的输入/说明,以避免修改PATH env。 Windows级别的变量并重新启动Windows系统:(我的答案的副本来自https://stackoverflow.com/a/49851498/9083077,适用于Chrome):
( 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
注意:
(1)示例代码(在引用的答案中)可能需要5秒钟才能打开Firefox浏览器以指定的URL。
(2)如果没有服务器已在指定的url上运行或提供标题为字符串'Django'的页面,则python控制台将显示以下错误:
在浏览器中声明'Django'。标题
AssertionError
#8 楼
最好的确定方法是:下载并解压缩chromedriver并将chromedriver.exe放入C:\ Python27 \ Scripts中,然后您无需提供驱动程序的路径,只需
driver= webdriver.Chrome()
您无需添加路径或其他任何操作
#9 楼
解压缩chromedriver时,请务必指定确切位置,以便以后进行跟踪。在下面,您将为您的操作系统找到合适的chromedriver,然后将其解压缩到一个确切的位置,稍后可以在代码中将其作为参数提供。评论
或到/ usr / local / bin /进行全局安装。
–杰普
19年10月10日在11:41
#10 楼
如果您正在使用机器人框架RIDE。然后,您可以从其官方网站下载Chromedriver.exe
,并将此.exe文件保存在C:\Python27\Scripts
目录中。现在将此路径作为环境变量提及。 C:\Python27\Scripts\chromedriver.exe
。重新启动计算机,然后再次运行相同的测试用例。您不会再遇到此问题。
#11 楼
根据说明,您需要在实例化webdriver时包括ChromeDriver的路径。Chrome例如:driver = webdriver.Chrome('/path/to/chromedriver')
评论
如果将这些说明向右滚动,则会出现一条注释,指出“可选参数,如果未指定,将搜索路径”。但是至少某些版本的webdriver似乎会检查他们在路径中找到的任何chromedriver,并且如果对它不满意(错误的版本等),它将不会使用它(除非通过设置此参数而被迫尝试)。它会一直在寻找更好版本的路径,如果找不到它,则会抱怨。 (“找不到合适的chromedriver”比“找不到合适的chromedriver”更好。)
–西拉斯·布朗(Silas S. Brown)
1月9日20:17
#12 楼
在将chromedriver添加到路径之前,请确保它与浏览器的版本相同。如果没有,则需要匹配版本:更新/降级chrome以及升级/降级webdriver。
我建议尽可能地更新您的chrome版本,并匹配网络驱动程序。
要更新Chrome,请执行以下操作:
在右上角单击三个点。
单击
help
-> About Google Chrome
更新版本并重新启动chrome
,然后从此处下载兼容版本:http://chromedriver.chromium.org/downloads
。
注意:最新的chromedriver并不总是与chrome的最新版本匹配!
现在您可以将其添加到PATH中: br />在计算机上的某个位置创建一个新文件夹,您将在其中放置Web驱动程序。
我在
webdrivers
中创建了一个名为C:\Program Files
的文件夹复制文件夹路径。就我而言,是
C:\Program Files\webdrivers
右键单击
this PC
-> properties
:右键单击
Advanced System settings
单击
Environment Variables
在
System variables
中,单击path
并单击edit
单击
new
粘贴之前复制的路径
单击在所有窗口上都可以,
就这样!我用了pycharm,不得不重新打开它。也许与其他IDE或终端相同。
#13 楼
如果完全确定PATH设置正确后,如果计算机无法正常工作,可以尝试重新启动计算机。在Windows 7上,我总是在WebDriverException上收到错误消息: gecodriver,IEDriverServer。我很确定我有正确的路径。重新启动计算机,所有工作
#14 楼
就我而言,当我将chromedriver文件复制到c:\ Windows文件夹时,此错误消失了。这是因为Windows目录位于python脚本检查chromedriver可用性的路径中。#15 楼
如果使用远程解释器,则还必须检查是否定义了其可执行文件PATH。在我的情况下,从远程Docker解释器切换到本地解释器解决了问题。#16 楼
我遇到了与您相同的问题。我正在使用PyCharm编写程序,我认为问题出在PyCharm中而不是在OS中进行环境设置。
我通过脚本配置解决了问题然后手动编辑环境变量中的PATH。
希望对您有所帮助!
评论
另一个选择是将您的chromedriver直接移动到/ usr / local / bin,那么您根本不用添加任何路径
–sia1998
19年7月16日在14:06
#17 楼
在C:\ Windows处添加webdriver(chromedriver.exe或geckodriver.exe)。对我来说这是有效的
#18 楼
最好的方法可能是获取当前目录并将剩余地址附加到该目录。类似于此代码(在Windows上为Word。在Linux上,您可以使用pwd行):
webdriveraddress = str(os.popen("cd").read().replace("\n", ''))+'\path\to\webdriver'
#19 楼
当我下载chromedriver.exe时,我只是将其移动到PATH文件夹C:\ Windows \ System32 \ chromedriver.exe中,却遇到了完全相同的问题。对我来说,解决方案是只更改PATH中的文件夹,所以我将其移到了PATH中也位于Pycharm社区的bin文件夹中。
例如:
C:\Windows\System32\chromedriver.exe->给我例外
C:\ Program Files \ JetBrains \ PyCharm社区版
2019.1.3 \ bin \ chromedriver.exe->工作正常
#20 楼
Mac Mojave运行机器人测试框架和Chrome 77时出现此问题。这解决了该问题。感谢@Navarasu将我指向正确的轨道。$ pip install webdriver-manager --user # install webdriver-manager lib for python
$ python # open python prompt
接下来,在python提示符下:
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
There is no cached driver. Downloading new one...
Trying to download new driver from http://chromedriver.storage.googleapis.com/xx.x.xxxx.xx/chromedriver_mac64.zip
...
TypeError: makedirs() got an unexpected keyword argument 'exist_ok'
我现在获得了最新的下载链接
下载并将chromedriver解压缩到您想要的位置
例如:
~/chromedriver/chromedriver
用编辑器打开
~/.bash_profile
并添加:export PATH="$HOME/chromedriver:$PATH"
打开新的终端窗口,ta-da🎉
#21 楼
我在Webdriver 3.8.0(Chrome 73.0.3683.103和ChromeDriver 73.0.3683.68)上遇到了这个问题。在我将Webdriver升级到3.14.1后,问题消失了。pip install -U selenium
#22 楼
检查您的chrome驱动程序的路径,可能无法从那里得到它。#23 楼
另一种方法是下载并解压缩chromedriver,然后将“ chromedriver.exe”放入C:\ Program Files \ Python38 \ Scripts,然后您无需提供驱动程序的路径,只需driver = webdriver.Chrome()
#24 楼
对于Mac OS X用户 brew tap homebrew/cask
brew cask install chromedriver
评论
在这里已经回答了
– Gino Mempin
8月12日0:39
#25 楼
(对于Mac用户)我有相同的问题,但我通过以下简单方法解决了:
您必须将chromedriver.exe放在执行脚本的同一文件夹中,然后在pyhton中编写以下说明:
导入os
评论
您提出的解决方案与其他用户之一完全相同。发布前,请注意其他答案。
– Nikita Kniazev
18年7月16日在14:28
@walid_data并不是说这可能只是Windows问题吗?
– Benc
19年1月14日在21:49
评论
尝试将chromedriver.exe复制到与Python脚本相同的目录中。通过Chocolatey安装会将其添加到路径中,choco install chromedriver。
对于用户在pycharm中遇到此问题,重新启动即可解决
我同意ImNt的回答。尽管我想为那些使用virtualenv的用户添加它,但是您应该使用以下示例格式以管理员身份在venv文件中运行python:driver = webdriver.Chrome(r'C:/ Users / michael / Downloads / chromedriver_win32 /chromedriver.exe')
@MalikBrahimi我一直在到处搜索此解决方案,直到找到您的评论之前,它们都没有真正起作用。非常感谢