赛普拉斯捕获所有请求cy.Route()

时间:2020-06-05 10:40:05

标签: javascript cypress

enter image description here enter image description here

我想捕获所有请求,但是cy.Route()似乎不接受通配符。因此,例如,我想导航到Reddit”并捕获所有请求,但是,我还希望代码可重用,这样我就可以导航到堆栈溢出并捕获所有请求。

这可能吗?

我尝试过*通配符,但不起作用

cy.route('*').as('GETS');

cy.route(GET, '*').as('GETS');

1 个答案:

答案 0 :(得分:0)

Cypress自动包含minimatch并将其公开为Cypress.minimatch。根据{{​​3}},您需要使用"Globstar" ** matching

正确处理所有getpost请求:

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').thency.wait('@posts').then

cy.wait('@posts').then((xhr) => {
    cy.log('Intercepted: ' + xhr.url);
    cy.log('Intercepted: ' + JSON.stringify(xhr.response.body));
});

www.google.com上测试:

minimatch documentation

www.instagram.com上测试: Test screenshot