首页 > 解决方案 > 使用 Cypress 6.4 等待拦截但跳过第一个取消的 xhr 调用

问题描述

我使用拦截来等待 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 ?

标签: xmlhttprequestcypressintercept

解决方案


尝试用 should() 链式等待。IE:

cy.wait('@getContacts').its('response.statusCode').should('eq', 200).

根据 cypress 文档,cy.wait 将等到状态码为 200。


推荐阅读