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

使用Cypress-wait-until插件无法覆盖默认超时时间的问题求助

解决cypress-wait-until插件超时不生效的问题

你的问题出在:cy.waitUntil的timeout控制的是整个回调函数重试的总时长,但回调内部的cy.get命令使用的是Cypress默认的4秒超时,导致cy.get先触发超时,进而让cy.waitUntil提前终止。

直接修改代码(推荐)

给回调里的cy.get单独设置timeout,让它的超时时间和cy.waitUntil的总时长一致:

cy.waitUntil(() => 
  cy.get('div.tabs div:nth-child(3)', { timeout: 30000 }).should('be.visible'), 
  { timeout: 30000 }
)

这样cy.get会最多等待30秒直到元素可见,和cy.waitUntil的重试周期匹配。

全局修改默认超时(适合所有命令)

如果希望所有Cypress命令(比如cy.get、cy.click等)都使用统一的超时时间,可以修改项目根目录下的cypress.config.js(或cypress.config.ts)文件:

// cypress.config.js
module.exports = {
  e2e: {
    defaultCommandTimeout: 30000, // 将全局默认命令超时设置为30秒
    // 其他项目配置...
  },
};

修改后,所有未单独指定timeout的Cypress命令都会使用30秒作为超时时间,无需在每个cy.get中重复设置。

额外注意

如果需要调整cy.waitUntil的重试间隔(默认200毫秒),可以在配置参数中添加interval:

cy.waitUntil(() => 
  cy.get('div.tabs div:nth-child(3)', { timeout: 30000 }).should('be.visible'), 
  { timeout: 30000, interval: 500 } // 每500毫秒重试一次
)

内容的提问来源于stack exchange,提问作者Deepak

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 20:12:22