如何在cy.wait()超时后执行自定义操作?
在Cypress的cy.wait()超时后执行自定义操作
要处理cy.wait()的超时情况,可以利用Cypress命令的Promise特性,通过.catch()方法捕获超时错误并执行自定义逻辑,同时还能通过timeout选项自定义超时时长(默认4000毫秒)。
示例代码如下:
cy.wait('@login', { timeout: 5000 }) // 自定义超时时间为5秒 .then((interception) => { const token = interception.response.body.token Cypress.env('ACCESS_CODE', token) }) .catch((error) => { // 这里编写超时后的自定义操作 console.log('登录请求超时:', error.message) // 示例:设置默认token、标记超时状态等 Cypress.env('ACCESS_CODE', 'default-token') // 若需继续后续测试,返回resolved的Promise避免测试中断 return cy.wrap(true) })
如果需要全局处理所有cy.wait()的超时场景,也可以在测试文件开头或support/e2e.js中注册失败事件监听:
Cypress.on('fail', (error, runnable) => { if (error.message.includes('cy.wait() timed out waiting')) { // 针对wait超时的全局处理逻辑 console.log('发生wait超时:', error.message) // 返回false可阻止测试因该错误中断 return false } })
内容的提问来源于stack exchange,提问作者dushkin
相关产品推荐
相关产品推荐

