分享
三行代码  ›  专栏  ›  技术社区  ›  sunwarri0r

Cypress:条件断言错误

  •  -2
  • sunwarri0r  · 技术社区  · 1 周前

    AssertionError

    我的测试用例依赖于CSS值,如果我写一个如下的条件, cypress 停止与一个 断言错误

    let dialog = cy.get('#privacy_dialog')
    if (dialog.should('have.css', 'display', 'block')) {
      // confirm the dialog if it is displayed
      cy.get('#dialog_btn').click()  
    } else {
      // process with login, because css in this case is "display: none;"
      cy.get('#login_btn').click()
    }
    

    它也不会以这种方式工作,因为这样我会得到另一个错误 TypeError $dialog.should is not a function :

    cy.get('#privacy_dialog').then(($dialog) => {
      if ($dialog.should('have.css', 'display', 'block')) {
        cy.get('#dialog_btn').click()
      } else {
        cy.get('#login_btn').click()
      }
    })
    
    1 回复  |  直到 1 周前
        1
  •  0
  •   Alapan Das    1 周前

    一种方法是使用jquery检查if条件中的css属性:

    cy.get('#privacy_dialog').then(($dialog) => {
        if ($dialog.css('display') == 'block') {
            cy.get('#dialog_btn').click()
        }
        else {
            cy.get('#login_btn').click()
        }
    })