问题描述
我正在用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);
}
解决方法
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
}
希望这可以解决您的问题。