protractor - 使用 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 一起使用吗?
解决方案
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 在针对旧分支的拉取请求中。
推荐阅读
- sql-server - 将表数据类型从 SQL Server 转换为 Oracle 并将动态 SQL 数据插入到表数据类型
- python - 如何根据同一个类的另一个属性的值来访问一个类的属性?
- typescript - 如何使用 TypeScript 中预定义的可接受值正确声明自定义类型?
- ruby - docker-compose 选择了错误的 ruby 版本
- python-3.x - 使用单个命令运行测试并收集覆盖率报告
- php - MySQL 中的外键约束形成错误:Laravel 迁移
- multithreading - 在 std::lock_guard<> 的声明中添加 const 有什么意义?
- node.js - React 代理使用了错误的 url
- php - 如何检查PHP中的所有参数是否为假?
- r - 在R中将负值转换为零