Cypress click()函数致测试崩溃,Cypress Run执行卡住问题咨询
问题描述
- 环境:Cypress 12.6.0
- 异常表现:
Cypress Open模式:仅执行元素查找(如cy.get('ul.navigation li.login a').contains('Sign'))时测试正常通过;添加.click()后测试直接崩溃并返回Spec界面,控制台无任何错误提示。Cypress Run模式:测试执行到.click()步骤时卡住,无法完成整个测试流程。
- 复现代码示例:
// 原问题代码 cy.get('ul.navigation li.login a').contains('Sign').click() // 通用复现代码 cy.visit('https://www.google.com/'); cy.get('.LX3sZb .gb_p').contains('Gmail').click({force: true});
排查与解决方法
1. 禁用Cypress实验性特性
12.x版本部分实验特性可能导致交互异常,在cypress.config.js中添加以下配置:
module.exports = defineConfig({ e2e: { experimentalSessionAndOrigin: false, experimentalModifyObstructiveThirdPartyCode: false, }, });
2. 优化元素定位逻辑
避免链式调用的元素歧义,改用更精准的定位方式:
// 方式1:限制唯一元素后点击 cy.get('ul.navigation li.login a').contains('Sign').first().click() // 方式2:直接用contains匹配元素并点击 cy.contains('ul.navigation li.login a', 'Sign').click()
3. 调整浏览器设置
- 禁用浏览器硬件加速:以Chrome为例,进入「设置→系统」关闭「使用硬件加速模式(如果可用)」,重启浏览器后重新运行测试。
- 切换浏览器版本:尝试使用Chrome 110+、Edge等不同浏览器,排查版本兼容性问题。
4. 更新Cypress版本
升级至12.x系列最新稳定版,官方已修复该版本部分点击交互崩溃的bug。
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

