无法找到驱动程序错误
从历史上看,这是 Selenium 初学者首次尝试运行代码时遇到的最常见错误
可能的原因
通过 WebDriver,Selenium 支持所有主要浏览器。为了驱动请求的浏览器,Selenium 需要通过可执行驱动程序向其发送命令。此错误意味着 Selenium 尝试使用的任何方式都找不到必要的驱动程序。
可能的解决方案
有几种方法可以确保 Selenium 获取所需的驱动程序。
使用最新版本的 Selenium
从 Selenium 4.6 开始,Selenium 会为您下载正确的驱动程序。您不需要做任何事情。如果您使用的是最新版本的 Selenium,并且遇到错误,请启用日志记录并提交包含该信息的错误报告。
如果您想阅读有关 Selenium 如何为您管理驱动程序下载的更多信息,您可以阅读有关Selenium Manager的内容。
使用 PATH
环境变量
此选项首先需要手动下载驱动程序。
这是一种灵活的选项,可以在无需更新代码的情况下更改驱动程序的位置,并且可以在多台计算机上工作,而无需每台计算机将驱动程序放在相同的位置。
您可以将驱动程序放置在已在 PATH
中列出的目录中,也可以将其放置在目录中并将其添加到 PATH
。
要查看 PATH
中已有哪些目录,请打开终端并执行
echo $PATH
如果您的驱动程序的位置不在列出的目录中,您可以向 PATH 添加新目录
echo 'export PATH=$PATH:/path/to/driver' >> ~/.bash_profile
source ~/.bash_profile
您可以通过检查驱动程序的版本来测试它是否已正确添加
chromedriver --version
要查看 PATH
中已有哪些目录,请打开终端并执行
echo $PATH
如果您的驱动程序的位置不在列出的目录中,您可以向 PATH 添加新目录
echo 'export PATH=$PATH:/path/to/driver' >> ~/.zshenv
source ~/.zshenv
您可以通过检查驱动程序的版本来测试它是否已正确添加
chromedriver --version
要查看 PATH
中已有哪些目录,请打开命令提示符并执行
echo %PATH%
如果您的驱动程序的位置不在列出的目录中,您可以向 PATH 添加新目录
setx PATH "%PATH%;C:\WebDriver\bin"
您可以通过检查驱动程序的版本来测试它是否已正确添加
chromedriver.exe --version
指定驱动程序的位置
如果您无法升级到最新版本的 Selenium,您不希望 Selenium 为您下载驱动程序,并且您无法弄清楚环境变量,则可以在 Service 对象中指定驱动程序的位置。
您首先需要下载所需的驱动程序,然后创建适用的 Service
类的实例并设置路径。
在代码本身中指定位置的优点是不需要在您的系统上弄清楚环境变量,但缺点是使代码的灵活性降低。
驱动程序管理库
在 Selenium 自己管理驱动程序之前,已经创建了其他项目来为您执行此操作。
如果您由于使用旧版本的 Selenium 而无法使用 Selenium Manager(请升级),或者需要 Selenium Manager 尚未实现的高级功能,则可以尝试使用以下工具之一来使您的驱动程序自动更新
- WebDriverManager (Java)
- WebDriver Manager (Python)
- WebDriver Manager Package (.NET)
- webdrivers gem (Ruby)
下载驱动程序
浏览器 | 支持的操作系统 | 维护者 | 下载 | 问题跟踪器 |
---|---|---|---|---|
Chromium/Chrome | Windows/macOS/Linux | 下载 | 问题 | |
Firefox | Windows/macOS/Linux | Mozilla | 下载 | 问题 |
Edge | Windows/macOS/Linux | Microsoft | 下载 | 问题 |
Internet Explorer | 窗口 | Selenium 项目 | 下载 | 问题 |
Safari | macOS High Sierra 及更高版本 | Apple | 内置 | 问题 |
注意:Opera 驱动程序不再适用于 Selenium 的最新功能,目前官方不支持。