首页 > 解决方案 > 使用 Protractor 5.4.2 时,webdriver-manager 下载与 Chrome 74 不兼容的 2.46

问题描述

Protractor 5.4.2 使用下载 Chromedriver 2.46 的 webdriver-manager 12。Chromedriver 2.46 支持 Chrome 71-73(参见http://chromedriver.chromium.org/downloads)。我们需要下载 Chromedriver 74.0.3729.6。

我还看到有一个 webdriver-manager@13 支持这一点。我应该将它与 Protractor 5.4.2 一起使用吗?

标签: protractorwebdriver-manager

解决方案


webdriver-manager@12.1.4 已修复

webdriver-manager 发布 12.1.4 将下载最大 ChromeDriver 版本 74。如何获得它?

  • 重新安装您的节点模块目录(删除 node_modules 文件夹并执行npm install
  • 强制安装npm install -f

如果您想下载特定于 74.xxx 的版本,这已在 12.1.4 中修复。当我尝试在 12.1.3 中快速修复该问题时,我引入了一个错误,导致此问题无法正常工作。

webdriver-manager 下载 ChromeDriver 2.xx 的背景

webdriver-manager 下载的文件基于https://chromedriver.storage.googleapis.com/下载的版本格式为 2.xx。这些没有映射到 Chrome 的版本。为了进行语义版本比较,我们将添加一个“.0”来使用 semver 节点模块进行比较。

此假设不适用于 ChromeDriver 74 (74.0.3729.6) 的新版本。这就是它没有下载文件的原因。此更改发生在大约 2018 年 8 月。当此更改发生时,修复程序已添加到即将发布的 webdriver-manager 13 版本中。

那么为什么不使用 webdriver-manager@13 呢?这不适用于 Protractor 5.4.2 的一些原因:

  • 该修复适用于 webdriver-manager 13,但 Protractor 5.4.2 依赖于 webdriver-manager ^12.0.6。解析下载的文件时,安装另一个版本的 webdriver-manager 可能不起作用。
  • 这在使用直接连接 ( driverProviders/direct ) 或本地启动 Protractor 时不起作用,因为未创建 update-config.json 文件。这里有一个解决方法:https ://github.com/angular/webdriver-manager/pull/372但可能不会被合并。

webdriver-manager@12如何下载74的最大版本?

对于 webdriver-manager@12,最大版本存储在这里:https ://github.com/angular/webdriver-manager/blob/legacy/config.json#L5如果 Chrome 发布 75,这也应该更改为版本75 在针对旧分支的拉取请求中。


推荐阅读