不兼容的 chromedriver 和 chrome 版本,除了它们都是 96

Posted

技术标签:

【中文标题】不兼容的 chromedriver 和 chrome 版本,除了它们都是 96【英文标题】:Incompatible chromedriver and chrome versions except they are both 96 【发布时间】:2022-01-19 09:54:48 【问题描述】:

我将 Selenium python 与 chromedriver 一起使用,但遇到了关于 chromedriver 和 chrome 版本不兼容的常见错误:

session not created
from disconnected: unable to connect to renderer
  (Session info: chrome=96.0.4664.110)

我去下载了 chromedriver 96,但我一直收到同样的错误。 这是我检查 chromedriver 版本时的输出:

> chromedriver --version
ChromeDriver 96.0.4664.45 (76e4c1bb2ab4671b8beba3444e61c0f17584b2fc-refs/branch-heads/4664@#947)

这是我在代码中初始化驱动程序的方式:

options = Options()
port = '8888'
options.add_argument('--remote-debugging-port=' + port)
options.add_argument('headless')
try:
    driver = webdriver.Chrome(options=options)
except:
...

编辑: 将 Selenium 更新到版本后。 4.1.0,我现在得到一个同样错误的堆栈跟踪:

session not created
from disconnected: unable to connect to renderer
  (Session info: chrome=96.0.4664.110)
Stacktrace:
Backtrace:
    Ordinal0 [0x00916903+2517251]
    Ordinal0 [0x008AF8E1+2095329]
    Ordinal0 [0x007B2848+1058888]
    Ordinal0 [0x007A376E+997230]
    Ordinal0 [0x007B3A60+1063520]
    Ordinal0 [0x007FBA7A+1358458]
    Ordinal0 [0x007FA71A+1353498]
    Ordinal0 [0x007F639B+1336219]
    Ordinal0 [0x007D27A7+1189799]
    Ordinal0 [0x007D3609+1193481]
    GetHandleVerifier [0x00AA5904+1577972]
    GetHandleVerifier [0x00B50B97+2279047]
    GetHandleVerifier [0x009A6D09+534521]
    GetHandleVerifier [0x009A5DB9+530601]
    Ordinal0 [0x008B4FF9+2117625]
    Ordinal0 [0x008B98A8+2136232]
    Ordinal0 [0x008B99E2+2136546]
    Ordinal0 [0x008C3541+2176321]
    BaseThreadInitThunk [0x76ACFA29+25]
    RtlGetAppContainerNamedObjectPath [0x77A17A9E+286]
    RtlGetAppContainerNamedObjectPath [0x77A17A6E+238]

【问题讨论】:

你下载了它,但你是否将它添加到你的路径中,以便它比你以前拥有的任何东西都更受欢迎? 是的,我总是用路径中指定的文件夹中的新驱动程序替换旧驱动程序。如果不是正确的文件,chromedriver --version 将不会返回版本 96 你的 selenium 包的版本是多少? 3.141.0 好像 您是否刚刚重新启动了您的应用程序? xD 我确认我在我们的项目中使用 Selenium 3.141.0 和 Chromedriver 96.0.4664.45,没有问题。 【参考方案1】:

我认为问题与我以无头模式启动驱动程序有关,并且程序停止时它不会自行停止,导致再次启动时程序崩溃。

解决方法:在程序末尾使用driver.quit()

【讨论】:

以上是关于不兼容的 chromedriver 和 chrome 版本,除了它们都是 96的主要内容,如果未能解决你的问题,请参考以下文章

初次使用BAT,请检查Chrome浏览器和ChromeDriver兼容性

Python爬虫教程-27-Selenium Chrome版本与chromedriver兼容版本对照表

Mac中的Python安装selenium,结合chrom及chromdriver使用

APPIUM-----自动发现兼容的Chromedrivers

appium自动识别兼容的chromedriver

Selenium-WebDriver问题点chromeDriver和chrome浏览器版本之间的兼容性问题