如何将Groovy中的if条件语句改写为Cypress代码?
Cypress 实现“弹窗显示则点击确认”的正确写法
你的现有Cypress代码存在两个关键问题,导致无法实现预期效果:
- 选择器错误:原Groovy代码中
.PDialog是类选择器,但你写的PDialog是标签选择器,遗漏了开头的点号 - 判断逻辑不符:原代码判断的是弹窗是否可见(
displayed),但你只检查了元素是否存在(length),没有验证可见性
修正后的代码(完全匹配原Groovy逻辑)
cy.get('body').then($body => { // 检查弹窗是否可见,对应原Groovy的displayed判断 if ($body.find('.PDialog').is(':visible')) { cy.get('.p-submit-btn.confirm').click(); // 等待弹窗消失,替代原Groovy的硬等待逻辑 cy.get('.PDialog').should('not.be.visible'); } });
更简洁的写法
直接使用Cypress.$在当前DOM中检查,无需嵌套cy.get('body'):
if (Cypress.$('.PDialog').is(':visible')) { cy.get('.p-submit-btn.confirm').click(); cy.get('.PDialog').should('not.exist'); // 根据实际场景选择`not.be.visible`或`not.exist` }
关键说明
- Cypress不推荐硬等待(如原Groovy的
waitFor(2)),而是通过断言自动等待元素状态变化,测试稳定性更高 - 选择器必须完全匹配:类选择器要加
.,ID选择器加#,避免混淆标签选择器与类选择器
内容的提问来源于stack exchange,提问作者user19128690
相关产品推荐
相关产品推荐

