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

如何在Cypress中仅等待请求发出而非完成响应?

仅等待请求发出而非响应的Cypress实现方案

要实现只等待请求发出而不用等响应,你可以利用Cypress的cy.intercept()监听请求发出的事件,而不是默认的响应完成事件。这里有几种实用的写法:

方法1:使用Spy监听请求发出

// 创建一个spy并设置别名
const requestSentSpy = cy.spy().as('requestSent');

cy.intercept(url, (req) => {
  // 请求发出时触发spy
  requestSentSpy();
  // 让请求继续发送,不阻断后续流程
  req.continue();
});

cy.get('button').click();

// 等待spy被调用,确认请求已发出
cy.wait('@requestSent');

方法2:通过onRequest事件设置可等待别名

cy.intercept(url).on('request', () => {
  // 请求发出时创建标记别名
  cy.wrap(true).as('requestSent');
});

cy.get('button').click();

// 等待别名被创建,即请求已发出
cy.wait('@requestSent');

方法3:直接拦截请求阶段(可选模拟响应)

如果你不需要等待真实响应,也可以直接在请求阶段完成拦截:

cy.intercept(url, (req) => {
  // 可添加请求相关断言
  expect(req.method).to.equal('GET');
  // 可选:模拟响应让请求快速结束,也可以删除该行让请求继续发送
  req.reply({ statusCode: 200 });
}).as('alias');

cy.get('button').click();

// 此wait会在请求发出后立即结束,无需等待真实响应
cy.wait('@alias');

原理说明

默认的cy.wait('@alias')会等待请求的响应阶段完成,而上述方法都是监听请求发出的瞬间,因此能提前结束等待流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 22:43:24