[英]Cypress: how do you loop waiting for something to become visible (eventually)?
我正在等待 class 在赛普拉斯可用,可能需要 2 秒、5 分钟或 20 分钟才能可用,时间永远不会相同;
但我似乎无法让它工作,它总是在日志中将其记录为 {},尽管在 chrome 开发工具中 class.very 可用。
for (let i = 1; i < 10; i++) {
const $vg = cy.$('.very')
cy.log($vg)
if ($vg == ".very") {
cy.get("#dosomething").click();
} else {
cy.log($vg)
cy.wait(2000);
}
}
像这样的东西可以用来解决超时问题。
cy.get('.very', { timeout: 10000 })
.should('be.visible')
.and('contain', 'Home')
.click()
建议查看此 cypress.io 文档: https://docs.cypress.io/guides/core-concepts/variables-and-aliases.html#Return-Values
文档的顶部介绍了 cypress 的异步特性,这对于让您全神贯注非常重要,它解释了为什么您的示例代码不起作用。 这是该文档中的关键内容:“您不能分配或使用任何赛普拉斯命令的返回值。命令被排队并异步运行。 ”
除了查看Cypress 的重试能力文档外,请参阅Cypress Real World App中的大量示例,这是一个支付应用程序,用于演示 Cypress 测试方法、模式和工作流的实际使用情况,以及如何正确构建和写测试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.