webdriver-manager 和 chromedriver 在 MacOS 上破坏了量角器测试

问题描述

背景: 我在配备 Intel Core i5 的 2018 Mac mini 上有一个 macOS 10.15.3 的量角器测试台,它已被用于测试带有夜间 Jenkins 管道的 reactjs 应用程序。它已经运行了几个月。 2021 年 1 月 6 日晚上,测试开始失败,出现未知系统错误,如下面的日志和屏幕截图所示。

这个问题花了我和团队几个小时来解决,我想我会分享我的发现,以防遇到同样问题的人可以不浪费时间找到解决方案。

日志中的错误 spawn 未知系统错误 -86

2021-01-06 18:46:57.077  [18:46:56] I/launcher - Running 1 instances of WebDriver
2021-01-06 18:46:57.077  [18:46:56] I/direct - Using ChromeDriver directly...
2021-01-06 18:46:57.077  [18:46:56] E/launcher - spawn UnkNown system error -86
2021-01-06 18:46:57.077  [18:46:56] E/launcher - Error: spawn UnkNown system error -86

原因 自从 Google 开始支持 Mac M1 驱动程序以来,无论您使用的是 x86 还是 M1 系统,webdriver-manager 都会以某种方式将 M1 驱动程序视为 macOS 上的认驱动程序。

分辨率

  1. 将 webdriver-manager 升级到 12.1.8:webdriver-manager 团队反应迅速,他们已根据 https://github.com/angular/webdriver-manager/issues/476 发布了一个新版本来解决该问题。简而言之,将 webdriver-manager 升级到 12.1.8 后,问题将自行解决。确保检查您的 package.json、package-lock.json 并在必要时更新它们。

  2. 如果您因任何原因无法升级 webdriver-manager,只需将 M1 驱动程序替换为 x86 驱动程序即可。它会一直工作,直到您可以升级 webdriver-manager。您可以在 https://chromedriver.storage.googleapis.com/

    找到 chromedriver 下载
2021-01-06 18:46:50.948  > protractor-jasmine@0.1.0 webdriver-update /Users/****/jenkins_home/codelabci001/workspace/devops-dev-e2e/develop_branch/client-protractor
2021-01-06 18:46:50.948  > webdriver-manager update --standalone=false --gecko=false
2021-01-06 18:46:50.948  
2021-01-06 18:46:51.210  [18:46:51] I/file_manager - creating folder /Users/****/jenkins_home/codelabci001/workspace/devops-dev-e2e/develop_branch/client-protractor/node_modules/protractor/node_modules/webdriver-manager/selenium
2021-01-06 18:46:51.210  [18:46:51] I/config_source - curl -o/Users/****/jenkins_home/codelabci001/workspace/devops-dev-e2e/develop_branch/client-protractor/node_modules/protractor/node_modules/webdriver-manager/selenium/chrome-response.xml https://chromedriver.storage.googleapis.com/
2021-01-06 18:46:51.776  [18:46:51] I/downloader - curl -o/Users/****/jenkins_home/codelabci001/workspace/devops-dev-e2e/develop_branch/client-protractor/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_87.0.4280.88.zip https://chromedriver.storage.googleapis.com/87.0.4280.88/chromedriver_mac64_m1.zip
2021-01-06 18:46:52.349  [18:46:52] I/update - chromedriver: unzipping chromedriver_87.0.4280.88.zip
2021-01-06 18:46:52.610  [18:46:52] I/update - chromedriver: setting permissions to 0755 for /Users/****/jenkins_home/codelabci001/workspace/devops-dev-e2e/develop_branch/client-protractor/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_87.0.4280.88
2021-01-06 18:46:52.611  [INFO] complete - installing protractor
2021-01-06 18:46:52.611  [INFO] Executing Protractor Test
2021-01-06 18:46:52.870  
2021-01-06 18:46:52.870  > protractor-jasmine@0.1.0 e2e:jenkins /Users/****/jenkins_home/codelabci001/workspace/devops-dev-e2e/develop_branch/client-protractor
2021-01-06 18:46:52.870  > cross-env NODE_ENV=jenkins protractor protractor-entry.js "--suite" "workspace"
2021-01-06 18:46:52.870  
2021-01-06 18:46:57.077  [18:46:56] I/launcher - Running 1 instances of WebDriver
2021-01-06 18:46:57.077  [18:46:56] I/direct - Using ChromeDriver directly...
2021-01-06 18:46:57.077  [18:46:56] E/launcher - spawn UnkNown system error -86
2021-01-06 18:46:57.077  [18:46:56] E/launcher - Error: spawn UnkNown system error -86
2021-01-06 18:46:57.078      at ChildProcess.spawn (internal/child_process.js:407:11)
2021-01-06 18:46:57.078      at Object.spawn (child_process.js:548:9)
2021-01-06 18:46:57.078      at exec (/Users/****/jenkins_home/codelabci001/workspace/devops-dev-e2e/develop_branch/client-protractor/node_modules/selenium-webdriver/io/exec.js:116:27)
2021-01-06 18:46:57.078      at /Users/****/jenkins_home/codelabci001/workspace/devops-dev-e2e/develop_branch/client-protractor/node_modules/selenium-webdriver/remote/index.js:219:25
2021-01-06 18:46:57.078      at processticksAndRejections (internal/process/task_queues.js:97:5)
2021-01-06 18:46:57.078  From: Task: WebDriver.createSession()
2021-01-06 18:46:57.078      at Function.createSession (/Users/****/jenkins_home/codelabci001/workspace/devops-dev-e2e/develop_branch/client-protractor/node_modules/selenium-webdriver/lib/webdriver.js:769:24)
2021-01-06 18:46:57.078      at Function.createSession (/Users/****/jenkins_home/codelabci001/workspace/devops-dev-e2e/develop_branch/client-protractor/node_modules/selenium-webdriver/chrome.js:761:15)
2021-01-06 18:46:57.078      at Direct.getNewDriver (/Users/****/jenkins_home/codelabci001/workspace/devops-dev-e2e/develop_branch/client-protractor/node_modules/protractor/built/driverProviders/direct.js:77:33)
2021-01-06 18:46:57.078      at Runner.createbrowser (/Users/****/jenkins_home/codelabci001/workspace/devops-dev-e2e/develop_branch/client-protractor/node_modules/protractor/built/runner.js:195:43)

protractor execution that failed

successful protractor execution

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)