You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Groovy中的if条件语句改写为Cypress代码?

Cypress 实现“弹窗显示则点击确认”的正确写法

你的现有Cypress代码存在两个关键问题,导致无法实现预期效果:

  1. 选择器错误:原Groovy代码中.PDialog是类选择器,但你写的PDialog是标签选择器,遗漏了开头的点号
  2. 判断逻辑不符:原代码判断的是弹窗是否可见(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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 10:00:13