首页 > 解决方案 > 如何使量角器与 puppeteer 和 chrome 78 一起运行?

问题描述

我正在使用 Protractor for Angular E2E Tests + Puppeteer 在所有 CI 服务器中获得一致的 Chrome 版本。

最近我收到SessionNotCreatedError: session not created: This version of ChromeDriver only supports Chrome version 78错误。

虽然 puppeteer (1.20.0 -> Chromium 78.0.3882.0 ) 和 webdriver-manager 的安装版本是匹配的。

关于如何解决这个问题的任何想法?有关构建的更多信息,您可以在此处查看 CI 日志此处的项目

标签: protractorselenium-chromedriverpuppeteerangular-e2e

解决方案


我遇到了类似的问题,但是我的问题是 Chrome 81。

E/launcher - session not created: This version of ChromeDriver only supports Chrome version 81

我的解决方案是以下两个步骤:

1)不要让Angular在运行时为您安装最新的可用网络驱动程序ng e2e,方法是使用--webdriverUpdate标志并将其设置为false

2)使用webdriver-manager来自量角器并手动指定要使用的webdriver:

node_modules/protractor/bin/webdriver-manager update --versions.chrome=80.0.3987.106 --gecko false --standalone false

3)将此添加到“pree2e”步骤中,以便在 e2e 步骤之前自动执行:

"pree2e": "node_modules/protractor/bin/webdriver-manager update --versions.chrome=80.0.3987.106 --gecko false --standalone false"

要查看安装了哪些网络驱动程序,请使用node_modules/protractor/bin/webdriver-manager status.

https://github.com/angular/webdriver-manager/blob/legacy/docs/versions.md#download-a-specific-version

https://angular.io/cli/e2e#options

使用的版本:

"protractor": "5.4.3"
"puppeteer": "2.1.1"

Angular CLI: 9.1.0
Node: 12.2.0
OS: linux x64

推荐阅读