赛普拉斯-如何不等待页面加载事件?

时间:2019-08-07 09:06:39

标签: javascript automated-tests cypress

this相比,我如何不等待页面load的事件。我遇到的情况是单击生成表单提交并开始下载。然后,赛普拉斯将等待从未发生的页面load事件。

我尝试过:

setTimeout(
  cy.window().then(win => {
    win.dispatchEvent(new Event('load'))
  }), 5000);
cy.get('#btn').click();
//and also tried:
cy.get('form.excel-data').submit() //redirect to server
//and:
cy.on('window:before:load', (win) => {
  win.removeEventListener('load');
})
cy.get('#btn').click();

**我了解最佳做法,以及不应该下载以测试href等等的问题,但我的问题仍然存在。

1 个答案:

答案 0 :(得分:0)

在应用程序方面解决了它:

//form submit()...
if (window.Cypress) {
  setTimeout(() => location.reload(), 3000);
}

提交提交并下载文件后,此应用程序重新加载。虽然它不是完美的,但它可以工作并且不会影响应用程序。我在赛普拉斯上尝试过的许多其他事情(例如捕获异常)也没有用。