我正试图在我的Angular应用程序上运行Protractor测试,但我的ChromDriver版本与我的Chrome版本不匹配。
我可以很好地运行webdriver-manager start
,没有任何问题,但当我尝试运行测试时,我会收到以下错误消息:
SessionNotCreatedError:会话未创建:此版本的ChromeDriver仅支持Chrome版本85构建信息:版本:"3.141.59",修订:"e82be7d358",时间:"2018-11-14T08:25:53">
我检查了我的Chrome&即版本84。但当我尝试更新Chrome时,它说我的版本是最新的。
所以我有两个问题:
(1( 为什么这个最新版本(85(的Chrome对我来说不可用?
(2( 有没有一种方法可以让我的网络驱动程序降级,让它使用Chrome的84版本?
我也在这里回答了这个问题:https://github.com/angular/protractor/issues/5460最简单的修复方法是使用:
webdriver-manager update --versions.chrome=84.0.4147.30
webdriver-manager start --versions.chrome=84.0.4147.30
以更新和启动webdriver服务器。这迫使版本保持在84。我认为chromedriver的v85版本被添加并标记为最新版本(你可以在这里看到(,这迫使webdriver管理器开始下载85版本(默认情况下下载最新版本(。
如果您通常不使用webdriver-manager start
启动webdriver管理器服务器。这里是另一个你可以尝试的解决方案,我也在关于网络驱动程序管理器问题的讨论中发布了376
以下是复制的解决方案(这只是一个权宜之计,因为显然我们不想硬编码版本(:
-
我们安装了作为项目依赖项(
npm install --save-dev webdriver-manager
(的网络驱动程序管理器 -
我们在运行测试之前调用CCD_ 4。这将在中安装84 chromedriver版本/node_modules/webdriver-manager/selenium/。(我们刚刚在我们的包.json中将其作为npm脚本制作(
-
然后,我们更新dractor.conf文件,使其在exports.config:
chromeDriver:"./node_modules/webdriver-manager/selenium/chromedriver_84.0.4147.30.exe"
**的根目录中有此行
Protractor仍然安装chromedriver85,但它将使用84版本。
**在我们的案例中,我们在docker中运行量角器测试,但主要在windows上开发。因此,我更新了量角器.conf,使其具有以下行:chromeDriver: process.platform === "win32" ? "./node_modules/webdriver-manager/selenium/chromedriver_84.0.4147.30.exe" : "./node_modules/webdriver-manager/selenium/chromedriver_84.0.4147.30"