【发布时间】: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()
}
})
【问题讨论】:
-
Cypress 命令不返回该值,它们将其交给链中的下一个事物。你读过吗? docs.cypress.io/guides/core-concepts/conditional-testing?
-
@jonrsharpe 谢谢你的评论。我读了它,这就是为什么我尝试了第二种方法,但也没有用
-
因为您仍在尝试使用赛普拉斯命令的结果作为条件 - 它不会返回真或假。例如,
.should('have.css', 'display')将产生'block',每个 docs.cypress.io/api/commands/should#Yields。
标签: javascript testing cypress e2e