【问题标题】:Cypress: Conditional AssertionError赛普拉斯:条件断言错误
【发布时间】:2021-04-08 08:18:39
【问题描述】:

如果出现AssertionError,有没有办法不中止测试运行?

我的测试用例依赖于 CSS 值,如果我编写如下条件,cypress 会以 AssertionError 停止:

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()
  }
})

【问题讨论】:

标签: javascript testing cypress e2e


【解决方案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()
    }
})

【讨论】:

  • 谢谢,这行得通。我在控制台记录了 $dialog 对象,但可以看到上面的 css 属性。
猜你喜欢
  • 2021-12-22
  • 2021-12-21
  • 1970-01-01
  • 2021-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多