微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

赛普拉斯:条件断言错误

如何解决赛普拉斯:条件断言错误

如果出现 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','block')) {
    cy.get('#dialog_btn').click()
  } else {
    cy.get('#login_btn').click()
  }
})

解决方法

一种方法是使用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()
    }
})

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。