我正在使用 docker 文件中的量角器(版本 5.4.2)运行测试。在 google chrome 升级到版本 76 后,测试开始失败,出现此错误:
SessionNotCreatedError: session not created: Chrome version must be
between 71 and 75
[chrome #01-2] (Driver info: chromedriver=2.46.628388 (4a34a70827ac54148e092aafb70504c4ea7ae926),
platform=Linux 4.15.0-1040-aws x86_64)
我尝试了几种方法来解决这个问题:
1) 试图将 chrome 版本标记为以前的版本。但是 chrome 移动到稳定版本并且以前的版本被制作为 chromium 。
2) 还查看了一些可能的在线解决方案以供下载,但它对我不起作用
3) webdriver-manager update --versions.chrome 76.0.3809.68 .Still protractor 5.4.2 获取 chrome 驱动程序 2.46
要么我想在 chrome 75 上运行测试,所以我需要降级 chrome 版本,或者我想知道如何使量角器与 chrome 76 版兼容
到目前为止,我所做的是在本地使用 webdriver-manager 更新,当我运行测试时,它运行良好,但是当我在 dockerFile 中运行测试时,它也遵循清理和更新 webdriver-manager 的步骤,它会运行回到使用 chrome 驱动程序 2.46 。甚至 webdriver clean 删除 chromedriver 76 本身
npx webdriver-manager clean
webdriver-manager: using local installed version 12.1.6
[11:01:36] I/file_manager - removed chromedriver_76.0.3809.12
[11:01:36] I/file_manager - removed chromedriver_76.0.3809.12.zip
[11:01:36] I/file_manager - removed geckodriver-v0.24.0
[11:01:36] I/file_manager - removed geckodriver-v0.24.0.tar.gz
[11:01:36] I/file_manager - removed selenium-server-standalone-3.141.59.jar
[11:01:36] I/file_manager - removed chrome-response.xml
[11:01:36] I/file_manager - removed gecko-response.json
[11:01:36] I/file_manager - removed standalone-response.xml
[11:01:36] I/file_manager - removed update-config.json
root@966d9b57465f:/opt# npx webdriver-manager update
npx webdriver-manager update 再次提供相同的驱动程序
webdriver-manager: using local installed version 12.1.6
现在当我运行测试时:
[11:03:07] I/update - chromedriver: file exists /opt/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_2.46.zip
[11:03:07] I/update - chromedriver: unzipping chromedriver_2.46.zip
[11:03:08] I/update - chromedriver: setting permissions to 0755 for /opt/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_2.46
[11:03:08] I/update - chromedriver: chromedriver_2.46 up to date
[11:03:08] I/launcher - Running 2 instances of WebDriver
[11:03:09] I/testLogger -
------------------------------------
如果我删除了 chrome 驱动程序 2.46,因为它说 exits above 该文件存在。所以测试不会运行
ode:1131) UnhandledPromiseRejectionWarning: Error: ENOENT: no such file or directory, stat '/opt/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_2.46.zip'
at Object.fs.statSync (fs.js:948:11)
但是相同的测试正在本地运行