javascript - cypress 登录后等待重定向

标签 javascript conditional-statements cypress wait

我正在用柏树测试一个网络应用程序。
我登录我的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/

相关文章:

Ruby - App Academy 关于 While 循环中条件的练习

Java Lambda 使用条件检查解析集合

visual-studio-code - 在 Visual Studio Code 中调试 Cypress 测试

javascript - 如何等到设置 cookie?

reactjs - 如何通过 cypress stub 服务器端响应?

javascript - 如何在单击按钮时更新 setinterval 函数中的变量值

javascript - 如何将一个 Canvas 的拖放包含在另一个 Canvas 内?

JavaScript 原型(prototype)继承解决方法

javascript - 重置 Javascript 对象中所有值的最佳方法

python - 根据条件从另一个列表创建新列表