首页 > 解决方案 > 赛普拉斯 - 如何不等待页面加载事件?

问题描述

与此相反,我如何不等待页面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等等......我的问题仍然存在。

标签: javascriptautomated-testscypress

解决方案


在应用程序端解决了它:

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

这在提交发生并下载文件后重新加载了应用程序。虽然它并不完美,但它可以工作并且不会影响应用程序。我在 Cypress 上尝试过的许多其他事情,比如捕捉异常,也没有奏效。


推荐阅读