我正在尝试处理Cypress中的错误,但Cypress应用抛出错误
cy.get('button[name="continue"]',{timeout: 30000})
.catch((err) => {
cy.console.log("error caught");
})
我得到的错误:
TypeError:cy.get(...)。catch不是函数
答案 0 :(得分:1)
Cypress没有.catch
命令,错误消息清楚地表明了这一点。
catchError明确指出:
以下代码无效,您无法向赛普拉斯命令添加错误处理。该代码仅用于演示目的。
cy.get('button').contains('hello') .catch((err) => { // oh no the button wasn't found // (or something else failed) cy.get('somethingElse').click() })
他们故意忽略了这一点,并在文档中详细解释了为什么您不应该这样做。
如果确实需要,您可以捕获未捕获的异常,只需尝试documentation on error recovery的建议:
it('is doing something very important', function (done) {
// this event will automatically be unbound when this
// test ends because it's attached to 'cy'
cy.on('uncaught:exception', (err, runnable) => {
expect(err.message).to.include('something about the error')
// using mocha's async done callback to finish
// this test so we prove that an uncaught exception
// was thrown
done()
// return false to prevent the error from
// failing this test
return false
})
// assume this causes an error
cy.get('button').click()
})