更新到 ChromeDriver 2.46 后 Chrome 版本必须介于 71 和 75 之间的错误

Posted

技术标签:

【中文标题】更新到 ChromeDriver 2.46 后 Chrome 版本必须介于 71 和 75 之间的错误【英文标题】:Chrome version must be between 71 and 75 error after updating to ChromeDriver 2.46 【发布时间】:2019-07-23 06:19:18 【问题描述】:

将 chromedriver 更新到 2.46 版后,我的 tast 无法初始化。 我收到这样的消息:

Starting ChromeDriver 2.46.628402 (536cd7adbad73a3783fdc2cab92ab2ba7ec361e1) on port 44269
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
Failed to invoke configuration method com.personal.CustomTest.initTests not created: Chrome version must be between 71 and 75
  (Driver info: chromedriver=2.46.628402,platform=Windows NT 10.0.16299 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 1.58 seconds
Build info: version: '2.53.1'

很明显,我的浏览器版本无效。但我使用的是 Chrome 72.0.3626.119,所以它在 71 到 75 之间。 Selenium 版本是 2.53.1。 我正在 testNG 的帮助下通过控制台命令运行测试。

有什么想法吗?我发现的每个想法都是关于更改 selenium 版本,但我做不到。

【问题讨论】:

嗯,可能是该机器上存在另一个 Chrome 版本并被使用。例如,chromedriver 还会检查C:\Users\<username>\AppData\Local\Google\Chrome\Application 是否有chrome.exe。确保您的机器上确实没有旧的 chrome 版本 - 例如在所有硬盘上搜索所有chrome.exe @FlorianAlbrecht 好吧,可能就是这样。在运行测试之前我需要检查是否有一些未删除的应用程序 你需要升级selenium.. 2.53版本不兼容最新版本的chromedriver 【参考方案1】:

帮我解决这个问题:

在 Windows 上

cd C:\Users\[myname]\AppData\Roaming\npm\node_modules\protractor
npm i webdriver-manager@latest
webdriver-manager update
webdriver-manager start &

在 Cent-OS 上(我使用的是 Cent-OS 7.4.*,它运行良好。)

cd /usr/lib/node_modules/protractor/
sudo npm i webdriver-manager@latest
sudo webdriver-manager update
sudo webdriver-manager start &

我希望这对你有任何帮助。

【讨论】:

【参考方案2】:

此错误消息...

Starting ChromeDriver 2.46.628402 (536cd7adbad73a3783fdc2cab92ab2ba7ec361e1) on port 44269
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
Failed to invoke configuration method com.personal.CustomTest.initTests not created: Chrome version must be between 71 and 75

...暗示 ChromeDriver v2.46 与您的程序/网络驱动程序正在访问的 Chrome 浏览器 版本不兼容。

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

您正在使用 chromedriver=2.46 chromedriver=2.46 的发行说明明确提及以下内容:

支持 Chrome v71-73

虽然您提到您使用的是 Chrome 72.0.3626.119,但您的系统中可能安装了多个 Chrome 浏览器实例,并且您的程序默认访问的是Chrome 浏览器,其版本不在 v71.xv75.x

之间

您正在使用 chrome=67.0

ChromeDriver v2.38 的发行说明明确提及以下内容:

支持 Chrome v65-67


解决方案

保持JDK升级到最近的水平JDK 8u201。 卸载所有 Chrome 浏览器实例(您可以选择使用Revo Uninstaller)。 将 ChromeDriver 升级到当前的ChromeDriver v2.46 级别。 将 Chrome 版本保持在 Chrome v71-73 级别之间。 (as per ChromeDriver v2.46 release notes)

【讨论】:

在 v71-73 级别之间不需要保留 chrome 版本。如此处所述:***.com/a/55266105/1191799 您可以使用最新的 chrome 和最新的 chromedriver。【参考方案3】:

对我来说,我必须在我的项目中更新我的 chrome 驱动程序以匹配我本地计算机上的 Chrome 版本。

纱线添加 chromedriver@76.0.0 -D

https://www.npmjs.com/package/chromedriver

【讨论】:

【参考方案4】:

在我的情况下,当我的 chrome 更新到版本 76 后,我遇到了同样的错误。当chimp 尝试使用chromedriver 执行硒测试时,就会发生这种情况。

DevTools listening on ws://127.0.0.1:49220/devtools/browser/e88586cb-ed67-44fc-a742-43b767e2b8f9
    [chimp][helper] setupBrowserAndDDP had error
     Error: session not created: Chrome version must be between 71 and 75
        at Object.wait (C:\ACPMS\ELS_AT\node_modules\fibers\future.js:449:15)
        at Object.<anonymous> (C:\ACPMS\ELS_AT\node_modules\wdio-sync\build\index.js:344:27)
        at Object.<anonymous> (C:\ACPMS\ELS_AT\node_modules\chimp\dist\lib\session-manager.js:145:21)
        at initBrowser (C:\ACPMS\ELS_AT\node_modules\chimp\dist\lib\chimp-helper.js:189:43)
        at Object.setupBrowserAndDDP (C:\ACPMS\ELS_AT\node_modules\chimp\dist\lib\chimp-helper.js:264:7)
        at Context.<anonymous> (C:\ACPMS\ELS_AT\node_modules\chimp\dist\lib\mocha\mocha-helper.js:13:15)
        at C:\ACPMS\ELS_AT\node_modules\chimp\dist\lib\utils\fiberize.js:29:22
        (Driver info: chromedriver=2.46.628402 (536cd7adbad73a3783fdc2cab92ab2ba7ec361e1),platform=Windows NT 10.0.17134 x86_64)
        at new RuntimeError (C:\ACPMS\ELS_AT\node_modules\webdriverio\build\lib\utils\ErrorHandler.js:143:12)
        at Request._callback (C:\ACPMS\ELS_AT\node_modules\webdriverio\build\lib\utils\RequestHandler.js:318:39)
        at Request.self.callback (C:\ACPMS\ELS_AT\node_modules\request\request.js:185:22)
        at emitTwo (events.js:106:13)
        at Request.emit (events.js:191:7)
        at Request.<anonymous> (C:\ACPMS\ELS_AT\node_modules\request\request.js:1161:10)
        at emitOne (events.js:96:13)
        at Request.emit (events.js:188:7)
        at IncomingMessage.<anonymous>

对我来说,当我通过 npm(全局和本地)更新 chrome 驱动程序时它不起作用,然后我按照以下步骤解决问题,这可能会提供一些关于在哪里检查此类问题的想法:

    由于node_modules\chimp\dist\lib\utils\fiberize.js 中引发了异常,我导航到该文件并找到该文件上方的一层node_modules\chimp\dist\lib\chromedriver.js,其中包含启动 chromedriver 的代码。 我在 chromedriverPath 中添加了一个 console.log,如下所示,并重新执行了测试以在控制台日志中获取 chromedriver 路径。
Chromedriver.prototype.start = 函数(回调) 变种自我=这个; var 端口 = self.options.port; 如果(this.child) 打回来(); 返回; var chromedriverPath = chromedriver.path; //这是我添加的,看到 chrome 驱动器路径 console.log("[黑猩猩] " + chromedriverPath); 如果(fs.existsSync(chromedriverPath)) this.child = processHelper.start( bin: chromedriverPath, 前缀:“chromedriver”, 参数:["--port=" + 端口,"--url-base=wd/hub"], waitForMessage: /Starting ChromeDriver/, 错误消息:/错误/ , 打回来 ); 别的 callback("[chimp][chromedriver] Chromedriver 可执行文件未找到。"); ;
    当我获得用于执行测试的 chromedriver 的路径时,我只是导航到该文件夹​​并将 chromedriver 可执行文件替换为最新版本。

我希望这会有所帮助。

【讨论】:

【参考方案5】:

试试这个:为 Chrome 浏览器的更新版本下载兼容的 ChromeDriver.exe 文件并替换它。它对我有用。

【讨论】:

以上是关于更新到 ChromeDriver 2.46 后 Chrome 版本必须介于 71 和 75 之间的错误的主要内容,如果未能解决你的问题,请参考以下文章

npm install 报错 chromedriver 安装失败

vue-cli创建项目报错"ChromeDriver binary is unavailable"

chromedriver安装

如何在 Ubuntu 上更新 Chromedriver?

Selenium ChromeDriver与Chrome版本映射表(更新到v78)

Selenium ChromeDriver与Chrome版本映射表(更新到v78)