提问人:Romanzhivo 提问时间:9/15/2023 更新时间:11/6/2023 访问量:278
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)
问:
我已经更新了我的 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
答:
请尝试改用 flag。https://developer.chrome.com/articles/new-headless/与 117 一样,旧的 Cypress 在旧的无头模式下连接到镀铬时遇到 ECONNRESET 错误。
但是,Cypress 现在启动了许多 chrome 进程,这些进程在 Cypress id 关闭后继续运行。当在本地启动时,它甚至会挂起我的工作站。--headless=new
评论
此问题是由 Chromium 中的一个错误引起的,该错误会影响 Chrome。
它也被记录为 Cypress 问题 27804,其中列出了不同的解决方法。由于 Chrome 修复程序的发布,此问题现已关闭并已解决(见下文)。117
117
Cypress 问题中列出的解决方法之一是更新到 Cypress 版本 > 。其他解决方法更针对 Cypress >= 的非旧版。您使用的 Cypress 版本属于 Cypress 的旧版本,因此并非所有解决方法都完全适用。12.14.0
10.0.0
6.8.0
Google Chrome 桌面版稳定频道更新的以下更新解决了该问题:
週三, 27 九月 2023 稳定频道已更新为 Windows、Mac 和 Linux,将在未来几天/几周内推出。
117.0.5938.132
评论
对于旧版本的 Cypress [我使用的是 9.7.0]
我们有以下选项来解决 Chrome 117 的问题
创建一个浏览器:启动钩子,将 --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; }) }
在有头模式 -> 下运行
-b 浏览器 --headed
评论