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

Cypress如何使用intercept拦截端点不含指定字符串的GET请求

Cypress 拦截不含指定路径段的GET请求实现方案

Cypress 完全支持这类反向匹配的拦截规则,有两种常用实现方式:


方案1:使用正则负向预查实现匹配

直接在cy.intercept的路径参数传入正则表达式,通过负向预查规则过滤掉包含f0000000000的请求:

// 正则说明:(?!f0000000000) 为负向预查规则,匹配指定路径段不是f0000000000的请求
cy.intercept("GET", /\/(?!f0000000000)[^/]+\/path1.*/).as('getForecast');
cy.get('#some').click();
// 示例场景中只有1个符合规则的请求,直接等待一次即可
cy.wait('@getForecast').its('response.statusCode').should('eq', 200);

方案2:使用自定义过滤函数(更直观易维护)

如果觉得正则写法复杂,也可以通过cy.intercept的请求回调函数手动判断过滤,仅给符合条件的请求挂载别名:

cy.intercept('GET', '**/path1*', (req) => {
  // 仅当请求URL不包含f0000000000时,才绑定getForecast别名
  if (!req.url.includes('f0000000000')) {
    req.alias = 'getForecast'
  }
})
cy.get('#some').click();
cy.wait('@getForecast').its('response.statusCode').should('eq', 200);

注意事项

  • 如果页面触发的符合规则的请求不止1个,需要按实际数量传入cy.wait参数,比如2个符合要求的请求就写cy.wait(['@getForecast', '@getForecast'])
  • 第二种方案灵活度更高,还可以扩展判断请求头、请求参数等更多过滤条件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 15:39:02