【发布时间】:2021-05-24 21:19:05
【问题描述】:
我使用拦截来等待 XHR 调用,并确保加载它的应用网格开始执行我的测试:
cy.visit('/contacts')
cy.intercept('POST', '**/contacts/datatable').as('getContacts')
cy.wait('@getContacts')
cy.log('now I can start...')
问题是我的 api 出现了一些问题,我首先得到一个取消的 XHR,然后是一个 200 状态,响应正确,cypress 卡在 cy.wait 中。
我尝试添加某种条件,例如:
cy.wait('@getContacts')
.should('have.property','response.statusCode',200)
.then(cy.log('now I can start...'))
但还是一样。
有什么想法可以跳过 XHR 调用,直到响应为 200 ?
【问题讨论】:
-
在拨打
cy.visit之前先拨打cy.intercept。据我所知,您的浏览器可能会在 API 被模拟之前尝试访问该链接。 -
你试过failOnStatusCode吗?我想它会解决你的问题:见文档docs.cypress.io/api/commands/request.html#Arguments
标签: xmlhttprequest cypress intercept