当前位置: 首页 > 知识库问答 >
问题:

谷歌chrome升级到76版后,测试失败

郤浩慨
2023-03-14

我正在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移动到稳定版本,以前的版本是铬的。
2)也在网上寻找了一些可能的解决方案来下载,但对我不起作用
3)网络驱动程序管理器更新-versions.chrome76.0.3809.68。仍然量角器5.4.2拿起chrome驱动程序2.46

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

到目前为止,我所做的是在本地使用webdriver manager更新,当我运行测试时,它运行良好,但当我在dockerFile中运行测试时,它也遵循清理和更新webdriver manager的步骤,返回到使用chrome driver 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 WebDrive-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) 

但同样的测试也在本地进行

共有3个答案

督劲
2023-03-14

您可以使用Chrome 76运行selenium测试。遵循以下步骤:

  • 将Google Chrome浏览器升级至76版。x

所有的测试现在将运行谷歌Chrome浏览器76. x

田易安
2023-03-14

在运行量角器测试用例之前,可以运行以下命令

“node./node_模块/量角器/bin/webdriver管理器更新--独立错误--gecko错误--versions.chrome 2.44”

在此之后,请运行您的端到端测试用例。

这就是我们package.json的样子

"install-webmanager": " node ./node_modules/protractor/bin/webdriver-manager update --standalone false --gecko false --versions.chrome 2.44"

"e2e": "npm run install-webmanager && ng e2e"

所以你只需要跑

"npm run e2e"
令狐献
2023-03-14

谷歌没有提供一种简单的方法来处理旧版本。最好的方法是使用76并获得相关的驱动程序版本。

此外,Chrome驱动程序不兼容与驱动程序不同的主要版本的Chrome。例如,驱动程序v75不适用于Chromev76。

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并使用它来解决这个问题。

注意:有了这个,如果下载了新的驱动程序,量角器仍然失败(运行测试),那么请在这里进行更新。问题可能是网络驱动程序管理器(您正在使用的版本)与chrome驱动程序v76有问题。

 类似资料:
  • 我正在使用无头Chrome运行python selenium测试。在更新到chrome版本和chromedriver版本后,我使用的(请参见下面的代码示例)...不再工作了。即浏览器启动(非headless)并且分辨率设置也不起作用 升级到chromedriver 75/76后,还有人看到这个吗?

  • 我最近更新了我的项目的gradle版本,从2.14.1到3.0。从那以后,gradle构建每次都失败,出现以下错误: 错误:原因:org.gradle.api.internal.tasks.defaultTaskinputs$TaskinputUnionFileCollection无法强制转换为org.gradle.api.internal.file.Collections.defaultConf

  • 直到几天前,我的测试还可以。现在他们失败了,但有一个例外: 来自未知错误:找不到页面:chrome-extension://aapnijgdinlhnhlmodcfapnahmbfebeb/_generated_background_page.html(会话信息:chrome=58.0.3029.14)(驱动程序信息:chromedriver=2.26.436362(5476ec6bf7ccbad

  • 根据Hazelcast官方文档,从版本3.8开始支持滚动升级。 如果我的服务器版本是3.5,是否有办法创建一个成功的集群,其中新的盒子运行较新版本的Hazelcast? 天真地升级到3.6。*导致了两个不同的集群(旧的盒子仍然运行3.5,而另一个新的盒子运行3.6,显然没有数据,因为它永远无法与现有的盒子接触)。 我的部署过程如下: 创建一组新框 我的想法是在磁盘/数据库上存储快照,并在推出时从数