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

ste*_*ess 126 python selenium selenium-chromedriver

我正在使用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()
Run Code Online (Sandbox Code Playgroud)

...我一直收到以下错误消息:

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
Run Code Online (Sandbox Code Playgroud)

但是 - 如上所述 - 可执行文件是(!)在路径中...这里发生了什么?

lmN*_*mNt 136

您可以测试它是否实际位于PATH中,如果您打开cmd并键入chromedriver(假设您的chromedriver可执行文件仍然像这样命名)并按Enter键.如果Starting ChromeDriver 2.15.322448出现,则PATH设置正确并且还有其他错误.

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

 driver = webdriver.Chrome('/path/to/chromedriver') 
Run Code Online (Sandbox Code Playgroud)

所以在你的具体情况:

 driver = webdriver.Chrome("C:/Users/michael/Downloads/chromedriver_win32/chromedriver.exe")
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你的回答:"启动ChromeDriver 2.15.322448"确实出现了."只允许本地连接." 也出现了.......但我想这可以吗?....我想知道的一件事是:在网站上只有一个32位版本的chromedriver可用....但这应该可以正常使用我的64位窗口,不应该吗? (3认同)
  • 将Web驱动程序添加到PATH时,无论操作系统如何,只包括存储webdriver的目录,而不是可执行文件.示例:PATH = $ PATH:/ path/to/webdriver/folder,not PATH = $ PATH:/ path/to/webdriver/chromedriver.另外,使用PATH比将位置传递到webdriver.Chrome()调用要容易得多,因为我们总是假设在运行代码的任何地方都正确设置了PATH,但我们不能假设它们的文件结构设置相同. (3认同)
  • 尝试使用相同的解决方案,但收到此错误:WebDriverException:消息:'chromedriver.exe' 可执行文件可能具有错误的权限。请参阅 https://sites.google.com/a/chromium.org/chromedriver/home (3认同)

Nav*_*asu 61

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

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

pip install webdriver-manager
Run Code Online (Sandbox Code Playgroud)

现在,问题中的上述代码将仅适用于以下更改,

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())
Run Code Online (Sandbox Code Playgroud)

同样可以用于设置Firefox,Edge和ie二进制文件

  • 这太棒了,因为它也保持最新 (16认同)
  • 我正在 Azure Databricks 中尝试此操作,它向我抛出此错误 `ValueError: Could not get version for Chrome with this command: google-chrome --version || 谷歌浏览器稳定--版本`。我应该怎么办? (4认同)
  • @Navarasu 恕我直言,当当前是 3.7 时,为什么有人会遵循 3.6 中的某些内容。下次最好明确说明它适用于 3.6....谢谢 (2认同)
  • 该解决方案的好处是,它比基于特定路径设置的其他解决方案具有更大的灵活性,我认为这在多台计算机上使用脚本方面是不切实际的。 (2认同)
  • 这不再有效(截至 2023 年)。这是新的解决方案:/sf/ask/5269702091/ (2认同)

Bor*_*ris 30

Ubuntu 上

sudo apt install chromium-chromedriver
Run Code Online (Sandbox Code Playgroud)

Debian 上

sudo apt install chromium-driver
Run Code Online (Sandbox Code Playgroud)

macOS 上安装Homebrew然后执行

brew cask install chromedriver
Run Code Online (Sandbox Code Playgroud)


Gio*_*ous 16

对于 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
Run Code Online (Sandbox Code Playgroud)

对于 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
Run Code Online (Sandbox Code Playgroud)

你现在应该可以运行了

from selenium import webdriver

browser = webdriver.Chrome()
browser.get('http://localhost:8000')
Run Code Online (Sandbox Code Playgroud)

没有任何问题


And*_*llo 13

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

  • 谢谢。我在 Visual Studios 中遇到了同样的问题。刚刚重新启动 IDE 就可以了 :) 谢谢 (2认同)

小智 9

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

driver = webdriver.Chrome(r"C:/Users/michael/Downloads/chromedriver_win32/chromedriver.exe")
Run Code Online (Sandbox Code Playgroud)


小智 8

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

driver = webdriver.Chrome('/path/to/chromedriver')
Run Code Online (Sandbox Code Playgroud)


Pra*_*r C 7

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

驱动程序= webdriver.Chrome()


Alo*_*man 6

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

如果没有,您将需要匹配版本:更新/降级您的 chrome,并升级/降级您的网络驱动程序。

我建议尽可能更新您的 chrome 版本,以及匹配的网络驱动程序。

要更新 Chrome:

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

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

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

现在您可以将其添加到 PATH 中:

  1. 在计算机中的某个位置创建一个新文件夹,您将在其中放置网络驱动程序。我创建了一个名为的文件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. 在所有窗口上单击“确定”

就是这样!我用的是pycharm,必须重新打开它。也许其他 IDE 或终端也是如此。


小智 5

最好的方法肯定在这里:

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

driver= webdriver.Chrome()
Run Code Online (Sandbox Code Playgroud)

您无需添加路径或任何内容


enj*_*411 5

可执行路径已被弃用!

如果您收到 exectuable_path 已被弃用警告,这里是修复...

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
def run():
    s=Service(ChromeDriverManager().install())    
    chrome_driver = webdriver.Chrome(service=s)
    ...
Run Code Online (Sandbox Code Playgroud)