如何将groovy中的if条件重写为Cypress?

u5i3ibmn  于 2023-05-28  发布在  其他
关注(0)|答案(2)|浏览(131)

我有一些用Groovy写的前端测试,需要用Cypress重写。我目前有问题,重写一个如果条件,以赛普拉斯。如果弹出窗口显示点击它,否则什么也不做。

if ($(".PDialog").displayed) {
            $(".p-submit-btn.confirm").click()
            waitFor(2) {!$(".PDialog").displayed}
}

我试过使用then子句。我目前的版本是这个“

cy.get('body').then($res => {
            if ($res.find('PDialog').length) {
                cy.get('.p-submit-btn.confirm').click();
            }
        });

但它仍然不能像上面的一个那样工作。

vyswwuz2

vyswwuz21#

Cypress.$用于$.should('be.visible')用于displayed

const $dialog = Cypress.$(".PDialog")

if ($dialog.length > 0) {
  // it exists
  cy.wrap($dialog).should('be.visible')  // is displayed
  cy.get('.p-submit-btn.confirm').click()
  cy.wrap($dialog).should('not.be.visible')
}

当使用.should(<some assertion>)时,您会自动获得4秒的超时,因此这里不需要等待。

gmxoilav

gmxoilav2#

在你的代码中,你缺少了一个类PDialog

cy.get('body').then($res => {
   if ($res.find('.PDialog').length) {
      cy.get('.p-submit-btn.confirm').click();
      cy.get('.PDialog').should('not.exist')
   }
});

相关问题