SessionNotCreatedException:消息:未创建会话:此版本的 Chrome 驱动程序仅支持 Chrome 版本 85

SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 85

目前我正在进行量角器 UI 测试。到目前为止,我的测试用例工作正常,但突然显示 webdriver 问题。我当前的 chrome 版本是 84。但是 selenium 驱动程序期待 85 版本。85 版本仍未发布。

[14:56:46] E/launcher - session not created: This version of ChromeDriver only supports Chrome version 85
  (Driver info: chromedriver=85.0.4183.38 (9047dbc2c693f044042bbec5c91401c708c7c26a-refs/branch-heads/4183@{#779}),platform=Windows NT 10.0.17134 x86_64)
[14:56:46] E/launcher - SessionNotCreatedError: session not created: This version of ChromeDriver only supports Chrome version 85
  (Driver info: chromedriver=85.0.4183.38 (9047dbc2c693f044042bbec5c91401c708c7c26a-refs/branch-heads/4183@{#779}),platform=Windows NT 10.0.17134 x86_64)

要么使用 webdriver-manager 指定您的 chromedriver 版本,要么使用 --webdriverUpdate=false if 运行 e2e tests

(参见:https://github.com/angular/protractor/issues/5460

webdriver-manager 安装 Chrome 驱动程序 85 时似乎存在问题,尽管 Chrome 84 是当前的稳定版本。多人报告了这个问题。

我发布了a workaround in issue 376

总的来说,您可以在使用 webdriver-manager 时暂时硬编码您想要的版本,然后告诉 protractor 使用哪个版本(因为 protractor 仍然可以尝试安装 85 并使用它)。

这是复制的解决方法:

  1. 我们安装了 webdriver-manager 作为项目依赖项 (npm install --save-dev webdriver-manager)

  2. 我们在 运行 进行测试之前调用 webdriver-manager update --versions.chrome 84.0.4147.30。这将在 ./node_modules/webdriver-manager/selenium/ 中安装 84 chromedriver 版本。 (我们刚刚在 package.json 中将其作为 npm 脚本)

  3. 然后我们更新 protractor.conf 文件以在 exports.config 的根目录中包含此行:chromeDriver:"./node_modules/webdriver-manager/selenium/chromedriver_84.0.4147.30.exe"**

Protractor 仍然安装 chromedriverr 85,但它将使用 84 版本。

** 在我们的例子中,我们 运行 在 docker 中测试量角器,但主要在 windows 上开发。所以我更新了 protractor.conf 以包含此行,以便它可以在以下任一情况下工作: chromeDriver: process.platform === "win32" ? "./node_modules/webdriver-manager/selenium/chromedriver_84.0.4147.30.exe" : "./node_modules/webdriver-manager/selenium/chromedriver_84.0.4147.30"

我遇到了同样的问题,但是当我更新最新版本的量角器 7.0.0 时它起作用了