Selenium 驱动的 ChromeDriver 找不到 Chrome 二进制文件

no *_*ein 1 python selenium google-chrome selenium-chromedriver selenium-webdriver

我刚刚卸载了 Chrome,因为它表现得很奇怪(现已修复),之后 Python 中的 Selenium 无法识别 Chrome 驱动程序二进制文件,这非常奇怪,因为它应该完全不受影响,并且位于不同的位置和不同的版本从我在桌面上使用的 Chrome 来看,代码如下,并且已经工作多年了。

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--load-extension='+exension_path)
driver = webdriver.Chrome(executable_path=chrome_driver_folder,options=chrome_options)
Run Code Online (Sandbox Code Playgroud)

有人知道到底发生了什么事吗?我收到以下错误:

WebDriverException: Message: unknown error: cannot find Chrome binary
  (Driver info: chromedriver=2.40.565498 (ea082db3280dd6843ebfb08a625e3eb905c4f5ab),platform=Windows NT 10.0.18362 x86_64)
Run Code Online (Sandbox Code Playgroud)

Deb*_*anB 5

这个错误信息...

WebDriverException: Message: unknown error: cannot find Chrome binary (Driver info: chromedriver=2.40.565498 (ea082db3280dd6843ebfb08a625e3eb905c4f5ab),platform=Windows NT 10.0.18362 x86_64)
Run Code Online (Sandbox Code Playgroud)

...意味着ChromeDriver无法启动/生成新的浏览上下文,即Chrome 浏览器会话。

您的主要问题是您使用的二进制文件版本之间不兼容,如下所示:

  • 您正在使用chromedriver=2.40
  • chromedriver=2.40的发行说明明确提到了以下内容:

支持Chrome v66-68

  • 由于您已卸载 Chrome 并重新安装,因此您可能使用的是最新的chrome=85.0
  • ChromeDriver v85.0的发行说明明确提到了以下内容:

支持Chrome 版本 85

因此ChromeDriver v2.40Chrome 浏览器 v85.0之间存在明显的不匹配


解决方案

确保这件事:

  • Selenium升级到当前发布的版本 3.141.59
  • ChromeDriver已更新至当前ChromeDriver v85.0级别。
  • Chrome已更新至当前Chrome 版本 85.0级别。(根据ChromeDriver v85.0 发行说明
  • 如果您的基本Web 客户端版本太旧,请将其卸载并安装最新的 GA 和发布版本的Web 客户端
  • 通过IDE清理项目工作区并仅使用所需的依赖项重建项目。
  • @Test非 root用户身份执行。
  • driver.quit()始终在方法内调用tearDown(){}以优雅地关闭和销毁WebDriverWeb Client实例。