首页 文章

错误消息:“'chromedriver'可执行文件需要在路径中可用”

提问于
浏览
71

我正在使用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 回答

  • 8

    您可以测试它是否实际位于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")
    
  • 3

    对于原始字符串,我们必须添加路径字符串,以字符串前面的字母 r 开头 . 我测试了这种方式,它的工作原理 .

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

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

  • 0

    我看到讨论仍然通过下载二进制文件并手动配置路径来讨论设置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二进制文件

  • 5

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

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

  • 0

    为此线程的未来读者提供一些额外的输入/说明,以避免修补PATH环境 . 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秒钟才能打开指定URL的Firefox浏览器 . (2)如果没有服务器已经在指定的url上运行或者服务一个 Headers 包含字符串'Django'的页面,python控制台将显示以下错误:在browser.title断言'Django'AssertionError

  • 0

    如果在确定PATH设置正确后它无效,可以尝试重新启动计算机 .

    就我在Windows 7上的情况而言,我总是在WebDriverException上出现错误:消息:对于chromedriver,gecodriver,IEDriverServer . 我很确定我有正确的道路 . 重启电脑,一切正常

  • 1

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

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

  • 0

    在我的情况下,当我将chromedriver文件复制到c:\ Windows文件夹时,此错误消失 . 因为windows目录位于python脚本检查chromedriver可用性的路径中 .

  • -4

    根据instruction,您需要在实例化webdriver.Chrome时包含ChromeDriver的路径,例如:

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

    (对于Mac用户)我有同样的问题,但我通过这种简单的方式解决了:你必须将你的chromedriver.exe放在你执行的脚本的同一个文件夹中,而不是在pyhton写这个指令:

    进口口

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

相关问题