Cypress使用intercept监听GET请求报错No request ever occurred求助
问题根因排查
- 最直接的匹配错误:你所有拦截规则中写的路径片段是
Wind10M,但实际发起的请求路径为Wind50M,二者路径关键字完全不匹配,因此Cypress无法捕获到对应请求,触发超时报错。 - 其他潜在匹配问题:
- 使用字符串匹配带query参数的接口时,Cypress会严格校验query参数的顺序和内容,只要有一个参数不匹配就会拦截失败。
- 你实际请求路径前缀包含
/path/api/,如果你的CypressbaseUrl配置没有包含该前缀,使用相对路径匹配时也会失败。
修复方案
首先根据业务逻辑二选一调整:
- 如果点击10米风复选框确实应该请求
Wind50M,属于业务逻辑如此,直接调整拦截规则即可,推荐使用正则或对象形式匹配,灵活度更高:
// 正则匹配方案,忽略前缀和后续query参数 cy.intercept("GET", /\/F20210903120000\/Wind50M\?view=grid/).as('getGridWind10M'); // 精准匹配方案,分开校验路径和指定query参数 cy.intercept({ method: 'GET', path: '**/F20210903120000/Wind50M', query: { view: 'grid' } }).as('getGridWind10M');
- 如果点击10米风复选框应该请求
Wind10M但实际发了Wind50M,说明业务代码存在逻辑错误,先修复业务代码后再执行测试即可。
如果路径中Wind后的数字是动态值,也可以用正则匹配动态数字部分:
cy.intercept("GET", /\/F20210903120000\/Wind\d+M\?view=grid/).as('getGridWind10M');
内容的提问来源于stack exchange,提问作者Dhamo
相关产品推荐
相关产品推荐

