避免使用 cy.wait() 等待页面加载由于中止获取请求 cypress

ejs*_*ner 7 timeout node.js cypress

我正在运行一个 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()
Run Code Online (Sandbox Code Playgroud)

Rui*_*ues 5

在断言之前,您可以让 Cypress 等待任何特定的 XHR 调用。等待的时间由responseTimeout 配置定义。

cy.server();
cy.route('**/api/getData').as('getData');
cy.visit('/home');
cy.wait('@getData');
cy.contains('ButtonText').click()
Run Code Online (Sandbox Code Playgroud)

Cypress 最佳实践:不必要的等待。

赛普拉斯文档等待别名。