-2

如果出现,有没有办法不中止测试运行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()
  }
})
4

1 回答 1

3

一种方法是使用 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()
    }
})
于 2021-04-08T08:24:51.813 回答