我正在运行一个 cypress 测试,需要在单击元素并登录之前加载页面,但由于某种原因失败(并中止)的 GET 请求导致页面永远加载并最终超时除非我在 cy.click() 调用之前添加一个 cy.wait(6000) 。我需要以某种方式等待页面加载而不使用 cy.wait()。鉴于我无法修复中止的 GET 请求,我该怎么做?
cy.visit(loginUrl)
cy.url().should('contain', '#/loginPortal')
cy.wait(6000) //Allows page to load before trying to log in, needs to be removed
cy.contains('ButtonText').click()
最佳答案
在断言之前,您可以让 Cypress 等待任何特定的 XHR 调用。等待多长时间由 responseTimeout configuration 定义.
cy.server();
cy.route('**/api/getData').as('getData');
cy.visit('/home');
cy.wait('@getData');
cy.contains('ButtonText').click()
关于node.js - 避免使用 cy.wait() 等待页面由于中止的获取请求而加载 cypress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50685393/