我正在用柏树测试一个网络应用程序。
我登录我的beforeEach
功能。然后,在我的不同测试中,我从 cy.visit('mysite.com/url')
开始。 .
我的问题是登录后,网站会重定向到网站的特定页面。此重定向发生在 cy.visit
之后。我的测试。因此,我的测试在重定向页面上运行,它们失败了。
重定向似乎与我可以等待的任何请求无关。
我最终得到 cy.wait(3000)
但这不是很令人满意。我的测试有时会失败,因为重定向可能需要 3 秒以上。我不想增加那个时间,因为运行我的测试需要很长时间。
有没有办法做类似的事情:
while (!cy.url().eq('mysite.com/redirection-url')) {
cy.wait(300);
}
最佳答案
Cypress 提供了关于断言的重试能力。您可以通过以下更改解决重定向 URL 的等待问题
cy.url().should('contain', '/redirection-url')
或者cy.url().should('eq', 'mysite.com/redirection-url')
这里should
默认情况下,断言将等待 4 秒并重试 cy.url()
您可以通过更新 cypress.json
中的参数来更改默认超时时间。文件{
"defaultCommandTimeout": 30000
}
希望这能解决您的问题。
关于javascript - cypress 登录后等待重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64553275/