问题描述
如果出现 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()
}
})