google-chrome - 谷歌浏览器升级到版本76后测试失败

标签 google-chrome protractor webdriver-manager

我正在 docker 文件中使用 Protractor (版本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移至稳定版本,并且先前版本为chrome。
2)还研究了一些可能的解决方案以在线下载,但对我不起作用
3)webdriver-manager更新--versions.chrome 76.0.3809.68。仍然 Protractor 5.4.2拾取chrome驱动程序2.46

我想在chrome 75上运行测试,所以我需要降级chrome版本的方法,或者我想知道如何使 Protractor 与chrome版本76兼容

到目前为止,我所做的是在本地使用webdriver-manager更新,当我运行测试时,它运行良好,但是当我在dockerFile中运行测试时,它也遵循清理和更新webdriver-manager的步骤,返回使用chrome驱动程序2.46。即使将webdriver清理干净也可以删除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更新再次提供了相同的驱动程序
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,因为它说存在该文件上方的导出。因此测试无法运行
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) 

但是相同的测试在本地运行

最佳答案

Google没有提供使用旧版本的简便方法。最好的方法是使用76并获取关联的驱动程序版本。

另外,Chrome驱动程序与主要驱动程序版本不同的Chrome不兼容。对于前。 v75驱动程序无法与Chrome v76一起使用。

可以通过driver-manager下载here Chrome驱动程序。

如果您要查找特定版本,则清除旧驱动程序并安装所需版本。您可以使用以下命令

npx webdriver-manager clean
npx webdriver-manager update --versions.chrome=76.0.3809.68

如果您全局安装了webdriver-manager,请使用
webdriver-manager clean
webdriver-manager update --versions.chrome=76.0.3809.68

希望通过下载并使用驱动程序v76解决该问题。

注意:这样,如果下载了新驱动程序,但 Protractor 仍然无法运行测试(请运行测试),请在此处进行更新。那么问题可能出在webdriver-manager(您正在使用的版本)上,而chrome驱动程序v76出现了问题。

关于google-chrome - 谷歌浏览器升级到版本76后测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57304573/

相关文章:

javascript - Chrome 内存/垃圾收集问题

javascript - 当 child 重新展开时,如何防止 Chrome 从 "remembering"到容器的滚动条位置?

javascript - 单击具有与文本匹配的相同类的元素并退出 Protractor

javascript - 使用值加载额外的 CONFIG 文件

java - 使用 webdrivermanager-x.x.x.jar 时不下载/初始化浏览器驱动程序(没有 Maven)

google-chrome - Chrome 浏览器在 chrome 节点 Docker 容器中运行多个 chrome 浏览器时崩溃

javascript - Android Chrome 网站

JavaScript、变量范围、变量求值顺序

angularjs - 如何在配置文件中启动 webdriver-manager

python - 如何在没有 csv 索引 header 的情况下编写行?