9

我正在使用 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) 

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

4

3 回答 3

5

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

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

Chrome 驱动程序可在此处通过 下载driver-manager

如果您正在寻找特定版本,请清理旧驱动程序并安装预期版本。您可以使用以下命令

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 并使用它的问题。

注意:这样,如果下载了新的驱动程序并且量角器仍然失败(运行测试),那么请在此处进行更新。那么问题可能是 webdriver-manager(您正在使用的版本)与 chrome 驱动程序 v76 有问题。

于 2019-08-01T08:27:33.247 回答
1

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

“节点 ./node_modules/protractor/bin/webdriver-manager 更新 --standalone false --gecko false --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"
于 2019-08-20T05:07:17.140 回答
-1

您可以使用 Chrome 76 运行 selenium 测试。请按照以下步骤操作:

现在所有测试都将使用 Google Chrome 浏览器 76.x 运行

于 2019-08-19T13:49:50.747 回答