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

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


当前回答

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

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

其他回答

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

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

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

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

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

pip install -U selenium

将Webdriver升级到3.14.1。