【问题标题】:Having same protractor version in package.json installing different chrome driver versions?package.json 中的量角器版本相同,安装不同的 chrome 驱动程序版本?
【发布时间】:2019-12-09 04:27:09
【问题描述】:

我对量角器版本及其工作原理感到困惑。 所以我创建了两个不同的节点项目,我在两个项目中都使用量角器版本"protractor": "~5.4.0"

当我尝试运行命令 npm run e2e 时,一个项目正在安装 chrome 驱动程序版本 2.46

[15:12:36] I/downloader - curl -o/home/circleci/project/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_2.46.zip https://chromedriver.storage.googleapis.com/2.46/chromedriver_linux64.zip [15:12:36] I/update - chromedriver: unzipping chromedriver_2.46.zip [15:12:36] I/update - chromedriver: setting permissions to 0755 for /home/circleci/project/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_2.46 [15:12:36] I/launcher - Running 1 instances of WebDriver [15:12:36] I/direct - Using ChromeDriver directly...

{ "name": "solutions-web", "version": "0.0.0", "license": "MIT", "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "build:prod": "ng build --prod --build-optimizer", "test": "ng test", "test:deployment": "ng test --watch=false --no-progress --code-coverage", "lint": "ng lint", "e2e": "ng e2e" }, "private": true, "dependencies": { "@angular/animations": "~7.2.0", "@angular/common": "~7.2.0", "@angular/compiler": "7.2.0", "@angular/core": "~7.2.0", "@angular/forms": "~7.2.0", "@angular/http": "~7.2.0", "@angular/platform-browser": "~7.2.0", "@angular/platform-browser-dynamic": "~7.2.0", "@angular/router": "~7.2.0", "angular-web-storage": "^7.0.0-beta.1", "bluebird": "^3.5.5", "classlist.js": "^1.1.20150312", "core-js": "^2.6.2", }, "devDependencies": { "@angular-devkit/build-angular": "~0.12.0", "@angular/cli": "~7.2.0", "@angular/compiler-cli": "~7.2.0", "@angular/language-service": "~7.2.0", "@types/jasmine": "~3.3.5", "@types/jasminewd2": "~2.0.6", "@types/node": "~10.12.18", "codelyzer": "~4.5.0", "jasmine-core": "~3.3.0", "jasmine-data-provider": "~2.2.0", "jasmine-spec-reporter": "~4.2.1", "karma": "~3.1.4", "karma-chrome-launcher": "~2.2.0", "karma-coverage-istanbul-reporter": "~2.0.4", "karma-jasmine": "~2.0.1", "karma-jasmine-html-reporter": "^1.4.0", "lodash": "^4.17.11", "protractor": "~5.4.0", "tiny-date-picker": "^3.2.8", "ts-node": "~7.0.0", "tslint": "~5.12.0", "typescript": "~3.2.2" }

另一个项目正在安装chrome驱动版本_75.0.3770.140

[14:40:30] I/config_source - curl -o/home/circleci/project/node_modules/protractor/node_modules/webdriver-manager/selenium/chrome-response.xml https://chromedriver.storage.googleapis.com/ [14:40:30] I/downloader - curl -o/home/circleci/project/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_75.0.3770.140.zip https://chromedriver.storage.googleapis.com/75.0.3770.90/chromedriver_linux64.zip [14:40:31] I/update - chromedriver: unzipping chromedriver_75.0.3770.140.zip [14:40:31] I/update - chromedriver: setting permissions to 0755 for /home/circleci/project/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_75.0.3770.140 [14:40:31] I/launcher - Running 1 instances of WebDriver [14:40:31] I/direct - Using ChromeDriver directly...

{ "name": "web-project", "version": "0.0.0", "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e" }, "private": true, "dependencies": { "@angular/animations": "~7.1.0", "@angular/common": "~7.1.0", "@angular/compiler": "~7.1.0", "@angular/core": "~7.1.0", "@angular/forms": "~7.1.0", "@angular/platform-browser": "~7.1.0", "@angular/platform-browser-dynamic": "~7.1.0", "@angular/router": "~7.1.0", "core-js": "^2.5.4", "rxjs": "~6.3.3", "tslib": "^1.9.0", "zone.js": "~0.8.26" }, "devDependencies": { "@angular-devkit/build-angular": "~0.11.0", "@angular/cli": "~7.1.0", "@angular/compiler-cli": "~7.1.0", "@angular/language-service": "~7.1.0", "@types/node": "~8.9.4", "@types/jasmine": "~2.8.8", "@types/jasminewd2": "~2.0.3", "webpack-dev-server": ">=3.1.11", "codelyzer": "~4.5.0", "jasmine-core": "~2.99.1", "jasmine-spec-reporter": "~4.2.1", "karma": "~3.1.1", "karma-chrome-launcher": "~2.2.0", "karma-coverage-istanbul-reporter": "~2.0.1", "karma-jasmine": "~1.1.2", "karma-jasmine-html-reporter": "^0.2.2", "protractor": "~5.4.0", "ts-node": "~7.0.0", "tslint": "~5.12.0", "typescript": "~3.1.6" } }

当我提供相同的量角器版本时,这怎么可能? 有人可以帮我理解这个过程并帮助我克服这个问题吗?

【问题讨论】:

  • 你能同时添加package.json文件吗?
  • 为两个项目添加了 package.json 文件
  • 唯一可以确保安装相同版本的量角器的方法是将依赖更改为"protractor": "5.4.0",~ 无法将版本保持在 5.4.0。并在更改依赖后删除package-lock.json,然后再次执行npm installng e2e

标签: selenium protractor webdriver-manager


【解决方案1】:

旧版本的 webdriver-manager

这意味着您在第一个旧项目中有一个 webdriver-manager 节点模块。下载 chromedriver 2.46 不再适用于最新版本的 Chrome。

Protractor ~5.4.x package.json 依赖项需要 webdriver-manager ^12.x.x。这意味着它将下载任何次要版本更新。因此,对于测试的较新安装,您将下载较新版本的 webdriver-manager。这些更高版本对 Chrome 浏览器主要版本进行了修复。目前最新的应该是 ChromeDriver 的 76 版本。

尝试下载正确版本的 ChromeDriver

假设您仍然需要 chromedriver 2.46 版,因为您仍在运行 Chrome 73 版(我认为这是它支持的 Chrome 版本),那么您可以通过webdriver-manager update --versions.chrome 2.46 获得它。同样,如果您需要版本 75,您可以从 https://chromedriver.storage.googleapis.com 下载特定版本。因此,您可以运行 webdriver-manager update --versions.chrome 75.0.3770.90 并下载该特定版本。

这会好转吗?

是的。有一些修复,但当前的 webdriver-manager 版本 12 没有提供支持。Protractor 6 很快就会采用一些重大更改......当它(最终)推出时。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多