我正在使用 cy.intercept()
截获一个 API,看起来这个 API 被调用了两次,因此它被截获了两次,并有不同的响应。我只想访问最后截获的一个。我该怎么做?
cy.intercept({
url: `${Cypress.config().apiUrl}/ticket`,
method: 'GET',
}).as('assignedTicketAPI')
答案 0 :(得分:0)
最近有一个问题 How to match intercept on response,是关于在同一个拦截中处理多个请求。
如果路由匹配参数相同,您可以在同一个拦截别名上等待两次。
cy.wait('@assignedTicketAPI')
cy.wait('@assignedTicketAPI').then(interception => {...
还可以对拦截中的请求进行计数,并为第二个捕获的请求分配唯一别名 - Aliasing individual requests
let intercepted = 0
cy.intercept({
url: `${Cypress.config().apiUrl}/ticket`,
method: 'GET',
}, (req) => {
intercepted = intercepted + 1
if (intercepted === 2) {
req.alias = 'assignedTicketAPI2'
}
})
cy.wait('@assignedTicketAPI2').then(interception => {...