等待对同一个 url 或端点的多个 XHR 请求

Wait for multiple XHR requests to the same url or endpoint

在 Cypress 中,我有多个请求将匹配我的 cy.route() 声明。我想确保在路线上提出了不止一个请求。我如何告诉 Cypress 等待对同一个 url 的多个 XHR 请求?

来自Cypress Docs

您应该设置一个 别名 (多次使用 .as()) to a single cy.route() that matches all of the XHRs. You can then cy.wait()。赛普拉斯会跟踪有多少匹配的 XHR 请求。

cy.server()
cy.route('users').as('getUsers')
cy.wait('@getUsers')  // Wait for first GET to /users/
cy.get('#list>li').should('have.length', 10)
cy.get('#load-more-btn').click()
cy.wait('@getUsers')  // Wait for second GET to /users/
cy.get('#list>li').should('have.length', 20)

另一种方法是传入一个别名数组。

cy.wait(["@graphql", "@graphql"]);

这对我有用

cy.wait("@Request1");
cy.wait("@Request2");
cy.wait(0);
cy.wait("@Request2");