繁体   English   中英

赛普拉斯:你如何循环等待某些东西变得可见(最终)?

[英]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 的异步特性,这对于让您全神贯注非常重要,它解释了为什么您的示例代码不起作用。 这是该文档中的关键内容:“您不能分配或使用任何赛普拉斯命令的返回值。命令被排队并异步运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM