列出了在Ubuntu 18.04 build agent上安装的最新版本的chrome here。我在撰写本文时正尝试使用81.0.4044.138
。
在我的package.json中,我有以下脚本:
{
...
scripts: {
...
"ci-e2e": "ng e2e --protractor-config e2e/ci.protractor.conf.js --webdriver-update=false",
"webdriver-update": "./node_modules/.bin/webdriver-manager update --versions.chrome=81.0.4044.138",
...
}
...
}
我正在运行webdriver-update
,然后在管道中运行ci-e2e
:
我在Azure DevOps管道中不断收到此错误:
...
2020-05-27T18:29:30.5713000Z [18:29:30] E/launcher - session not created: This version of ChromeDriver only supports Chrome version 81
2020-05-27T18:29:30.5713844Z (Driver info: chromedriver=81.0.4044.69 (6813546031a4bc83f717a2ef7cd4ac6ec1199132-refs/branch-heads/4044@{#776}),platform=Linux 5.3.0-1022-azure x86_64)
2020-05-27T18:29:30.5714690Z [18:29:30] E/launcher - SessionNotCreatedError: session not created: This version of ChromeDriver only supports Chrome version 81
2020-05-27T18:29:30.5715686Z (Driver info: chromedriver=81.0.4044.69 (6813546031a4bc83f717a2ef7cd4ac6ec1199132-refs/branch-heads/4044@{#776}),platform=Linux 5.3.0-1022-azure x86_64)
2020-05-27T18:29:30.5716525Z at Object.checkLegacyResponse (/home/vsts/work/1/s/wheres-my-order/node_modules/selenium-webdriver/lib/error.js:546:15)
2020-05-27T18:29:30.5717285Z at parseHttpResponse (/home/vsts/work/1/s/wheres-my-order/node_modules/selenium-webdriver/lib/http.js:509:13)
2020-05-27T18:29:30.5718469Z at /home/vsts/work/1/s/wheres-my-order/node_modules/selenium-webdriver/lib/http.js:441:30
2020-05-27T18:29:30.5718928Z at processTicksAndRejections (internal/process/task_queues.js:97:5)
2020-05-27T18:29:30.5719422Z From: Task: WebDriver.createSession()
2020-05-27T18:29:30.5720072Z at Function.createSession (/home/vsts/work/1/s/wheres-my-order/node_modules/selenium-webdriver/lib/webdriver.js:769:24)
2020-05-27T18:29:30.5720820Z at Function.createSession (/home/vsts/work/1/s/wheres-my-order/node_modules/selenium-webdriver/chrome.js:761:15)
2020-05-27T18:29:30.5721779Z at Direct.getNewDriver (/home/vsts/work/1/s/wheres-my-order/node_modules/protractor/built/driverProviders/direct.js:77:33)
2020-05-27T18:29:30.5722537Z at Runner.createBrowser (/home/vsts/work/1/s/wheres-my-order/node_modules/protractor/built/runner.js:195:43)
2020-05-27T18:29:30.5723198Z at /home/vsts/work/1/s/wheres-my-order/node_modules/protractor/built/runner.js:339:29
2020-05-27T18:29:30.5723892Z at _fulfilled (/home/vsts/work/1/s/wheres-my-order/node_modules/protractor/node_modules/q/q.js:834:54)
2020-05-27T18:29:30.5724550Z at /home/vsts/work/1/s/wheres-my-order/node_modules/protractor/node_modules/q/q.js:863:30
2020-05-27T18:29:30.5725293Z at Promise.promise.promiseDispatch (/home/vsts/work/1/s/wheres-my-order/node_modules/protractor/node_modules/q/q.js:796:13)
2020-05-27T18:29:30.5726001Z at /home/vsts/work/1/s/wheres-my-order/node_modules/protractor/node_modules/q/q.js:556:49
2020-05-27T18:29:30.5726677Z at runSingle (/home/vsts/work/1/s/wheres-my-order/node_modules/protractor/node_modules/q/q.js:137:13)
...
[它一直尝试使用81.0.4044.69
代替我指定的81.0.4044.138
。
我什至已将其添加到我的ci.protractor.conf.js
:
...
chromeDriver: '../node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_81.0.4044.138',
...
我真的在e2e套件中挣扎。每次发布Azure Devops代理时,我都必须指定一个神奇的版本号,它不是最新的,而是从代理的角度来看是最新的,我真的很想进行设置,这样我就不必每次我必须使用的版本更改时,请继续前进并推动代码更改。没有硬编码版本号就可以做到这一点吗?
ChromeDriver 81.0.4044.138(8c6c7ba89cc9453625af54f11fd83179e23450fa-refs / branch-heads / 4044 @ {#999});可通过CHROMEWEBDRIVER环境变量获得Chrome驱动程序]
[ChromeDriver 81.0.4044.138已安装在路径$(CHROMEWEBDRIVER)中。
注意:$(CHROMEWEBDRIVER)等于
/usr/local/share/chrome_driver
根据我的测试,我使用“ PowerShell脚本”任务来输出ChromeDriver和Chrome版本。
google-chrome --version
cd $(CHROMEWEBDRIVER)
chromedriver --version
结果:
您可以运行这些脚本来检查chrome和chromedriver的版本。
然后您可以尝试直接使用Ubuntu 18.04代理中chromedriver的路径。
我指的是this tiket上的@amirated建议。
希望这会有所帮助。