赛普拉斯-如何在赛普拉斯中等待属性值为假

时间:2019-11-18 10:01:28

标签: cypress

我有一个网站,其中包含iFrame中的所有内容。我的脚本失败了,因为cypress不能等待加载bar,因为cypress到目前为止不支持iframe。我想编写一个自定义命令,等待直到属性“ ng-reflect-loading”的值更改为false。

我尝试使用以下代码,但无法正常工作,并停止了柏赛跑者。参考Thread 136

cy.get('iframe').iframeLoaded().its('document').getInDocument('.main >ng-component > :nth-child(1)').then(function($loading) {
       while( $loading.attr('ng-reflect-loading')!='false')
       {
           cy.log('waiting')
       }
    })

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我对iFrame的工作方式一无所知。但是,“ ng-reflect-loading”最终会被隐藏吗? 在这种情况下,此检查应该起作用:

cy.get('.ng-reflect-loading')
  .should('not.exist')

如果它仍然存在,但值应该更改,则可以检查第一个不存在的值:

cy.get('.ng-reflect-loading')
  .should('not.contain.attr', 'attr_name', 'first value')

或者,如果值更改,则可以检查第二个值是否可用:

cy.get('.ng-reflect-loading')
  .should('contain.attr', 'attr_name', 'second value')