You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 16:32:02