Cypress 处于无头 chrome 模式:错误:在 TCP.onStreamRead (internal/stream_base_commons.js:205:27) 读取 ECONNRESET

Cypress in a headless chrome mode: Error: read ECONNRESET at TCP.onStreamRead (internal/stream_base_commons.js:205:27)

提问人:Romanzhivo 提问时间:9/15/2023 更新时间:11/6/2023 访问量:278

问:

我已经更新了我的 Ubuntu(23.04,内核 Linux 6.2.0-32-generic)和 Chrome (117),使用 Chrome 浏览器在无头模式下的命令现在不起作用。 当我使用 Chrome v115 时没有问题。cypress run

我尝试运行此命令: 并收到错误:yarn cypress run --headless --browser chrome --spec path/to/mytest.spec.js

Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:205:27)
 {
  errno: 'ECONNRESET',
  code: 'ECONNRESET',
  syscall: 'read'
}

我将不胜感激任何答案或建议,谢谢!

环境:Ubuntu:
23.04,Linux 6.2.0-32-generic
Cypress:v6.8.0
Chrome:v117
NodeJS:18.16.1
NVM:v0.39.3

节点 .js 谷歌浏览器 测试 赛普拉斯

评论


答:

1赞 Alex18881 9/21/2023 #1

请尝试改用 flag。https://developer.chrome.com/articles/new-headless/与 117 一样,旧的 Cypress 在旧的无头模式下连接到镀铬时遇到 ECONNRESET 错误。 但是,Cypress 现在启动了许多 chrome 进程,这些进程在 Cypress id 关闭后继续运行。当在本地启动时,它甚至会挂起我的工作站。--headless=new

评论

0赞 Romanzhivo 9/28/2023
谢谢!不幸的是,我无法检查您的建议,我已将我的 Chrome 更新到版本 117.0.5938.132,现在这正在工作:)
1赞 MikeMcC399 9/25/2023 #2

此问题是由 Chromium 中的一个错误引起的,该错误会影响 Chrome。 它也被记录为 Cypress 问题 27804,其中列出了不同的解决方法。由于 Chrome 修复程序的发布,此问题现已关闭并已解决(见下文)。117117

Cypress 问题中列出的解决方法之一是更新到 Cypress 版本 > 。其他解决方法更针对 Cypress >= 的非旧版。您使用的 Cypress 版本属于 Cypress 的旧版本,因此并非所有解决方法都完全适用。12.14.010.0.06.8.0

Google Chrome 桌面版稳定频道更新的以下更新解决了该问题:

週三, 27 九月 2023 稳定频道已更新为 Windows、Mac 和 Linux,将在未来几天/几周内推出。117.0.5938.132

评论

1赞 Romanzhivo 9/28/2023
谢谢!我已经将我的 Chrome 更新到版本 117.0.5938.132,现在它正在工作
1赞 Saurav Kumar 9/30/2023 #3

对于旧版本的 Cypress [我使用的是 9.7.0]

我们有以下选项来解决 Chrome 117 的问题

  1. 创建一个浏览器:启动钩子,将 --headless 替换为 --headless=NEW

    setupNodeEvents(on, config) { on('before:browser:launch', (browser, launchOptions) => { if (browser.name === 'chrome' && browser.isHeadless) { launchOptions.args = launchOptions.args.map((arg) => { if (arg === '--headless') { 返回 '--headless=new' } 返回 arg; }) } 返回 launchOptions; }) }

  2. 在有头模式 -> 下运行

    -b 浏览器 --headed