我正在使用selenium和python,并从我的网站下载了我的Windows计算机的chromedriver:http://chromedriver.storage.googleapis.com/index.html?path=2.15/
下载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
但是 - 如上所述 - 可执行文件是(!)在路径中...这里发生了什么?
11 回答
您可以测试它是否实际位于PATH中,如果您打开cmd并键入
chromedriver
(假设您的chromedriver可执行文件仍然像这样命名)并按Enter键 . 如果出现Starting ChromeDriver 2.15.322448
,则PATH设置正确并且还有其他错误 .或者你可以像这样使用chromedriver的直接路径:
所以在你的具体情况:
对于原始字符串,我们必须添加路径字符串,以字符串前面的字母
r
开头 . 我测试了这种方式,它的工作原理 .与pycharm社区版相同的情况,因此,对于cmd,您必须重新启动ide才能重新加载路径变量 . 重新启动你的ide,它应该没问题 .
我看到讨论仍然通过下载二进制文件并手动配置路径来讨论设置chromedriver的旧方法 .
这可以使用webdriver-manager自动完成
现在,问题中的上述代码将仅适用于以下更改,
同样可以用于设置Firefox,Edge和ie二进制文件
当你解压缩chromedriver时,请指定一个确切的位置,以便以后跟踪它 . 下面,您将获得适用于您的操作系统的正确的chromedriver,然后将其解压缩到一个确切的位置,以后可以在您的代码中作为参数提供 .
wget http://chromedriver.storage.googleapis.com/2.10/chromedriver_linux64.zip unzip chromedriver_linux64.zip -d /home/virtualenv/python2.7.9/
为此线程的未来读者提供一些额外的输入/说明,以避免修补PATH环境 . Windows级别的变量并重新启动Windows系统:(从https://stackoverflow.com/a/49851498/9083077复制我的答案适用于Chrome):
(1)下载chromedriver(如前面这个帖子中所述)并将(解压缩的)chromedriver.exe放在X:\ Folder \ of \ your \ choice中
(2)Python代码示例:
注意:(1)示例代码(在引用的答案中)可能需要大约5秒钟才能打开指定URL的Firefox浏览器 . (2)如果没有服务器已经在指定的url上运行或者服务一个 Headers 包含字符串'Django'的页面,python控制台将显示以下错误:在browser.title断言'Django'AssertionError
如果在确定PATH设置正确后它无效,可以尝试重新启动计算机 .
就我在Windows 7上的情况而言,我总是在WebDriverException上出现错误:消息:对于chromedriver,gecodriver,IEDriverServer . 我很确定我有正确的道路 . 重启电脑,一切正常
如果您正在使用机器人框架RIDE . 然后,您可以从其官方网站下载
Chromedriver.exe
并将此.exe文件保存在C:\Python27\Scripts
目录中 . 现在提到这个路径作为您的环境变量,例如 .C:\Python27\Scripts\chromedriver.exe
.重新启动计算机并再次运行相同的测试用例 . 你不会再遇到这个问题 .
在我的情况下,当我将chromedriver文件复制到c:\ Windows文件夹时,此错误消失 . 因为windows目录位于python脚本检查chromedriver可用性的路径中 .
根据instruction,您需要在实例化webdriver.Chrome时包含ChromeDriver的路径,例如:
(对于Mac用户)我有同样的问题,但我通过这种简单的方式解决了:你必须将你的chromedriver.exe放在你执行的脚本的同一个文件夹中,而不是在pyhton写这个指令:
进口口
os.environ [“PATH”] = os.pathsep r'X:/ your / folder / script /'