赛普拉斯登录后等待重定向

时间:2020-10-27 11:16:44

标签: javascript conditional-statements cypress wait

我正在用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);
}

1 个答案:

答案 0 :(得分:2)

Cypress提供断言重试功能。您可以通过以下更改来解决重定向URL的等待问题

cy.url().should('contain', '/redirection-url')

OR

cy.url().should('eq', 'mysite.com/redirection-url')

默认情况下,should断言将等待4秒钟,然后重试cy.url()

您可以通过更新cypress.json文件中的参数来更改默认超时时间

{
  "defaultCommandTimeout": 30000
}

希望这可以解决您的问题。