1

我正在开发一个测试套件,我发现确定页面准备就绪的唯一方法是选择器“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 中的某些功能?

相关的github问题

提前致谢

4

1 回答 1

0

作为参考,此方法与名称 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'))
  });
});
于 2017-11-21T11:49:09.383 回答