Chrome无头模式下Cypress运行报错ECONNRESET求助
问题与解决建议
问题详情
更新Ubuntu(23.04,内核Linux 6.2.0-32-generic)和Chrome(v117)后,执行yarn cypress run --headless --browser chrome --spec path/to/mytest.spec.js命令时出现报错,此前Chrome v115版本运行正常。
报错信息:
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
解决建议
- 升级Cypress版本:Cypress 6.8.0是2021年的旧版本,对Chrome 117的兼容性不足,直接升级到支持Chrome 117的版本(至少v12.0+,建议用最新稳定版),这是最彻底的解决方案。
- 添加Chrome启动兼容参数:如果暂时无法升级Cypress,修改Cypress配置文件(
cypress.json或cypress.config.js),添加适配高版本Chrome的启动参数:
注:module.exports = { chromeWebSecurity: false, browserLaunchOptions: { chrome: { args: [ '--headless=new', '--no-sandbox', '--disable-gpu', '--disable-dev-shm-usage', '--remote-debugging-port=9222' ] } } }--headless=new是Chrome 112+推出的新无头模式,旧版--headless参数和高版本Chrome存在兼容性冲突。 - 降级Chrome版本:若必须保留Cypress 6.8.0,可暂时将Chrome降级回v115版本,维持之前的稳定运行环境。
- 检查系统资源与权限:确保运行Cypress的用户具备足够权限,同时检查系统
/dev/shm空间是否充足,可执行mount -o remount,size=2G /dev/shm临时扩容测试。
内容的提问来源于stack exchange,提问作者Romanzhivo
相关产品推荐
相关产品推荐

