出现错误时,Cypress 可以给我错误消息吗?

Can Cypress give me an error message when there has been an error?

我的测试用例中有以下片段:

cy.get('item_here').should('not.exist');

当“item_here”确实存在时,cypress 能否给我一条自定义错误消息?

谢谢,

您可以在 .should() 的回调函数中抛出您自己的错误。

cy.get('item_here')
  .should(($item) => {
    if ($item.length !== 1) {
      throw new Error('Item does not exist in DOM')
    }
  })

您可以将日志消息链接到现有代码,它只会 运行 如果该元素不存在。

cy.get('item_here').should('not.exist')
  .then(() => cy.log('no such element found'))  // Note; this is an additional log

更改“成功”和“失败”消息很难,因为赛普拉斯喜欢在任何失败或抛出错误时显示红色 AssertionError 块。

你可以使用should()回调版本,但是在里面使用expect()否则你没有重试,

  cy.get('item_here').should($el => {
    expect($el, 'Cannot be found').to.not.exist    // expect causes retry for 4 seconds
                                                   
    Cypress.log({
      name: 'Missing',
      message: 'Cannot be found'
    })
  })