赛普拉斯:如何从别名获得第四个请求的响应?
Cypress: How to get response of fourth request from alias?
我有一个拦截器正在收到一个 GET
端点请求,该请求发生了四次。
cy.intercept(`endpoint/data*`).as(
'texasCounties'
);
这种情况在这里出现了四次。
在最后一个请求中对我来说唯一重要的一个,但是,当我等待响应时,它只与第一个请求挂钩,而我无法访问第四个请求的响应主体。这是我目前所拥有的
cy.wait('@texasCounties').then((interceptor) => {
const res = interceptor.response.body
cy.log(res) //only print object for the first request but I need the fourth
})
我已尝试 cy.wait('@texasCounties').eq(3)
获得第四个请求,但这不起作用。
有人知道怎么做吗?
如果您只需要最后一次调用,您可以将拦截移动到调用之前。
通过您的尝试,您已经接近答案了。您必须使用 .get('@alias')
获取所有拦截的请求并使用 .its()
访问最后一个请求。这就是它的样子。
// intercept and other test code
cy.get('@texasCounties.all') // this will get all four intercepted requests
.then(console.log) // if you want to log
.should('have.length', 4) // you can make assertions
.its(3) // to access the fourth request
我有一个拦截器正在收到一个 GET
端点请求,该请求发生了四次。
cy.intercept(`endpoint/data*`).as(
'texasCounties'
);
这种情况在这里出现了四次。
在最后一个请求中对我来说唯一重要的一个,但是,当我等待响应时,它只与第一个请求挂钩,而我无法访问第四个请求的响应主体。这是我目前所拥有的
cy.wait('@texasCounties').then((interceptor) => {
const res = interceptor.response.body
cy.log(res) //only print object for the first request but I need the fourth
})
我已尝试 cy.wait('@texasCounties').eq(3)
获得第四个请求,但这不起作用。
有人知道怎么做吗?
如果您只需要最后一次调用,您可以将拦截移动到调用之前。
通过您的尝试,您已经接近答案了。您必须使用 .get('@alias')
获取所有拦截的请求并使用 .its()
访问最后一个请求。这就是它的样子。
// intercept and other test code
cy.get('@texasCounties.all') // this will get all four intercepted requests
.then(console.log) // if you want to log
.should('have.length', 4) // you can make assertions
.its(3) // to access the fourth request