【问题标题】:CodeceptJs waiting for an element to disappear from DOMCodeceptJs 等待一个元素从 DOM 中消失
【发布时间】:2018-02-02 14:23:36
【问题描述】:

我正在开发一个测试套件,我发现确定页面准备就绪的唯一方法是选择器“div.spinner”消失时。 我能够使用 CapserJs(使用 PhantomJs 或 SlimerJs)来捕捉这种情况:

casper.waitWhileSelector('div.spinner');

我不得不用 nightmarejs 2.10.1 切换到 codeceptjs 1.0.1,我无法正确翻译这种情况。

我必须避免等待一些预定义的时间,因为我们有许多环境要测试,并且根据负载的不同,等待时间可能会从 1 秒到 40 秒以上不等。

目前我正计划在 codecept 上复制 casper 功能 Casper.prototype.waitWhileSelector

有人遇到过类似的问题吗?我是否缺少 CodeceptJs 中的某些功能?

Related github issue

提前致谢

【问题讨论】:

    标签: javascript automated-tests nightmare codeceptjs


    【解决方案1】:

    作为参考,此方法与名称 waitUntilExists 合并:

    https://github.com/Codeception/CodeceptJS/pull/683 https://github.com/Codeception/CodeceptJS/issues/682

    要使用它,您可以执行以下操作:

    describe('#waitUntilExists', () => {  
      it('should wait for an element to be removed from DOM', () => {
        return I.amOnPage('/spinner')
          .then(() => I.seeElementInDOM('.loader'))
          .then(() => I.waitUntilExists('.loader'))
          .then(() => I.dontSeeElement('.loader'))
      });
    
      it('should wait for a non-exising element to be removed from DOM', () => {
        return I.amOnPage('/spinner')
          .then(() => I.dontSeeElement('.non-existing-class'))
          .then(() => I.waitUntilExists('.non-existing-class'))
          .then(() => I.dontSeeElement('.non-existing-class'))
      });
    });
    

    【讨论】:

      猜你喜欢
      • 2020-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-31
      • 2020-12-09
      • 2016-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多