Javascript cypress在登录后等待重定向
我正在用cypress测试一个web应用程序 我在每个功能之前登录我的Javascript cypress在登录后等待重定向,javascript,conditional-statements,cypress,wait,Javascript,Conditional Statements,Cypress,Wait,我正在用cypress测试一个web应用程序 我在每个功能之前登录我的。然后,在我的不同测试中,我从cy.visit('mysite.com/url')开始 我的问题是,登录后,网站会重定向到网站的特定页面。此重定向发生在我的测试的cy.visit之后。因此,我的测试在重定向页面上运行,但失败了 重定向似乎与我可以等待的任何请求都没有关联 我最终得到了cy.wait(3000),但这不是很令人满意。我的测试有时会失败,因为重定向可能需要3秒钟以上。我不想增加时间,因为运行测试会花费太长的时间 有
。然后,在我的不同测试中,我从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')
或
在这里,should
断言默认情况下将等待4秒,然后重试cy.url()
您可以通过更新cypress.json
文件中的参数来更改默认超时
{
"defaultCommandTimeout": 30000
}
希望这能解决您的问题。回答得不错,但我只是想知道,默认命令等待时间不是5秒而是4秒吗?您是对的@konekoyadefaultCommandTimeout
是4秒。更新了答案。谢谢你指出这一点。!谢谢完整地说,cy.url
接受一个timeout
在它的options
参数中输入我们添加到pass的断言。无需修改defaultCommandTimeout
。
{
"defaultCommandTimeout": 30000
}