我想捕获所有请求,但是cy.Route()
似乎不接受通配符。因此,例如,我想导航到Reddit”并捕获所有请求,但是,我还希望代码可重用,这样我就可以导航到堆栈溢出并捕获所有请求。
这可能吗?
我尝试过*通配符,但不起作用
cy.route('*').as('GETS');
cy.route(GET, '*').as('GETS');
答案 0 :(得分:0)
Cypress自动包含minimatch并将其公开为Cypress.minimatch。根据{{3}},您需要使用"Globstar" ** matching
正确处理所有get
和post
请求:
cy.route('GET', '**').as('gets');
cy.route('POST', '**').as('posts');
或者,
cy.route({
method: 'GET',
url: '**'
}).as('gets');
cy.route({
method: 'POST',
url: '**'
}).as('posts');
注意:cy.route() should be set before cy.visit()
。要读取响应,请使用cy.wait('@gets').then
和cy.wait('@posts').then
cy.wait('@posts').then((xhr) => {
cy.log('Intercepted: ' + xhr.url);
cy.log('Intercepted: ' + JSON.stringify(xhr.response.body));
});
在www.google.com
上测试: