最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Failing wait for request in Cypress - Stack Overflow

programmeradmin1浏览0评论

I'm wrote wait on 3 different requests on my automated test, but each time I run the test, the wait functions on one of the requests.

 cy
        .intercept('POST', '**/api/Availability')
        .as('availabilecheck');
    cy
        .wait('@availabilecheck')
        .its('response.statusCode')
        .should('eq', 200)

////////////////////////////////////////

        cy
    .intercept('POST','**/api/Availability/GetPrice')
    .as('getpricecheck');
cy
    .wait('@getpricecheck')
    .its('response.statusCode')
    .should('eq', 200);

////////////////////////////

 cy.intercept('POST','**/api/Member/Find')
        .as('memberresponse')
    cy.wait('@memberresponse')

I wrote the above code for 3 different requests but each time I run the test, one of the requests actually waits and the other 2 fails.

What should I do?

I'm wrote wait on 3 different requests on my automated test, but each time I run the test, the wait functions on one of the requests.

 cy
        .intercept('POST', '**/api/Availability')
        .as('availabilecheck');
    cy
        .wait('@availabilecheck')
        .its('response.statusCode')
        .should('eq', 200)

////////////////////////////////////////

        cy
    .intercept('POST','**/api/Availability/GetPrice')
    .as('getpricecheck');
cy
    .wait('@getpricecheck')
    .its('response.statusCode')
    .should('eq', 200);

////////////////////////////

 cy.intercept('POST','**/api/Member/Find')
        .as('memberresponse')
    cy.wait('@memberresponse')

I wrote the above code for 3 different requests but each time I run the test, one of the requests actually waits and the other 2 fails.

What should I do?

Share edited Apr 5, 2021 at 3:43 Tester Unknown asked Apr 3, 2021 at 10:38 Tester UnknownTester Unknown 631 silver badge4 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 2

The order of mands matters. In my case I had to move the cy.intercept() mand before the action that performed the request

//the intercept es first
cy.intercept("POST", "**/api/user/login").as("loginResponse");

//this performs POST request in my case, es second
cy.get('button[type="submit"]').should("not.be.disabled").click();

//thirdly es the wait
cy.wait("@loginResponse").its("response.statusCode").should("eq", 200);

If the endpoints you are intercepting are not different, then Cypress will only take the first one and discard any subsequent ones. Make sure that the text that you are matching the url against is different for each request.

发布评论

评论列表(0)

  1. 暂无评论