我正在用cypress测试一个web应用程序。
我登录我的beforeEach函数。然后,在我的不同测试中,我从cy.visit('mysite.com/url')开始。
我的问题是,登录后,网站会重定向到网站的特定页面。这个重定向发生在我的测试的cy.visit之后。因此,我的测试在重定向页面上运行,它们会失败。
重定向似乎与我可以等待的任何请求都没有关联。
我最终选择了cy.wait(3000),但它并不是很令人满意。我的测试有时会失败,因为重定向可能需要3秒以上的时间。我不想增加这段时间,因为运行测试会花费太长时间。
有没有一种方法可以这样做:
while (!cy.url().eq('mysite.com/redirection-url')) {
  cy.wait(300);
}发布于 2020-10-27 23:44:35
Cypress提供了断言重试功能。您可以通过以下更改来解决重定向URL的等待问题
cy.url().should('contain', '/redirection-url')或
cy.url().should('eq', 'mysite.com/redirection-url')默认情况下,should断言将等待4秒,然后重试cy.url()
您可以通过更新cypress.json文件中的参数来更改默认超时
{
  "defaultCommandTimeout": 30000
}希望这能解决你的问题。
https://stackoverflow.com/questions/64553275
复制相似问题