我目前正在尝试让一些现有的 Protractor 测试为我将为其做 QA 工作的应用程序正常运行。但是,看起来我需要使用较早版本的 chromedriver 与我使用的 Chrome 版本(71.x)同步,但我不确定如何让 Protractor 使用其他版本,因为它总是下载 v76 . 为什么我需要这样做?上下文如下。
从存储库中提取代码后,我根据之前开发人员留下的说明在“/e2e”目录中进行了“npm install”,并使用“webdriver-manager update”通过 webdriver-manager 进行了更新。运行 Selenium 时,我收到“无效或损坏的 jar 文件”错误,这显然是 4.0.0-alpha-1 和 alpha-2 版本的问题,因此我将 Selenium 降级到独立版本 3.141.59。
这一直有效,直到我意识到在运行测试时,该应用程序没有将浏览器识别为 Chrome 并未能通过测试(它需要运行 Chrome),即使它确实在运行 Chrome。所以,我不得不降级我本地机器的 Chrome 版本以匹配我的更新拉取的 chromedriver 版本 - 我相信它正在运行 chromedriver v75 而我在我的本地机器上运行 v76。
一位 QA 同事告诉我,我应该运行 Chrome v71.x,因为这是我们用于发布管道的。因此,我卸载了 Chrome 并安装了 Chrome v71.x,确保禁用了自动更新。这意味着我需要获取与此匹配的 chromedriver 版本,从我在网上进行的挖掘,它似乎是 v2.46。
现在,我的核心问题。每次我尝试通过 webdriver-manager 更新内容时,它总是下载最新版本的 chromedriver (v76),我不知道如何让 Protractor 使用早期版本。我已经手动下载了 chromedriver 2.46 - 我猜我需要以某种方式将它指向这个版本,但是弄乱配置 json 文件并没有给我带来任何运气,我还没有在网上找到好的答案。
感谢任何帮助,因为我对所有这些工作方式仍然不熟悉。
作为参考,这是我尝试运行规范时弹出的错误类型:
[08:25:41] E/launcher - SessionNotCreatedError: session not created: This …Run Code Online (Sandbox Code Playgroud) selenium selenium-chromedriver selenium-webdriver protractor