【问题标题】:codeceptJS / webdriverIO exits script with grab commandscodeceptJS / webdriverIO 使用抓取命令退出脚本
【发布时间】:2016-04-15 00:17:11
【问题描述】:

我是 codeceptJS 的新手,但我可以说它根本不适用于 yield。

'use strict';
Feature('Testing Begins');
Before((I) => {
  I.resizeWindow(1500, 1000);
  I.amOnPage('http://absolutenet.com');
});

Scenario('ANI testing', function*(I){
  I.waitForText('bring your site to life');
  I.amOnPage('http://www.absolutenet.com/');
  let title = yield I.grabTitle();
  console.info(title);
  I.see('bogus text that is not there');
});

我已经尝试了几个抓取命令以及 executeScript。我知道这些命令正在工作,因为出于某种原因,在 yield 之后确实执行了一两行,所以我可以输出我分配的变量。但是,我永远无法使用它,因为浏览器关闭并且脚本终止。更糟糕的是,我可以进行一个明显无效的测试(I.see('some bogus non existent text');) 并且场景以成功退出!

以上内容是实时的,因此您可以执行它来查看问题。如果重要,请使用 Linux 和 FireFox 进行测试。

谁能给我一个如何使用yield并继续测试的例子?

更新:开发人员说这是一个错误,很快就会修复。

【问题讨论】:

  • 您在 WebdriverIO 中使用哪个测试运行程序?你用的是 mocha 还是 WebdriverIO 内置的 wdio runner?
  • 我不太确定如何回答这个问题。这是 codeceptJS 不是 codeception。我相信 codeceptJS 是测试运行器。

标签: javascript selenium testing webdriver-io codeceptjs


【解决方案1】:

我在 CodeceptJS 自述文件中看到以下内容:

使用 CodeceptJS,您的场景驱动功能和验收测试 将尽可能简单和干净。你不必担心 关于 NodeJS 的异步特性或 Selenium 的各种 API, PhantomJS、量角器等,因为 CodeceptJS 将它们统一起来并制作它们 以同步方式工作。

所以您不需要 yield 来运行测试。 CodeceptJS 是 WebdriverIO 的包装器,它为您处理这些异步任务。你应该能够做到以下几点:

Scenario('ANI testing', function*(I){
  I.waitForText('bring your site to life');
  I.amOnPage('http://www.absolutenet.com/');
  I.seeInTitle('my page title');
});

http://codecept.io/basics/

不过,为了更彻底地回答您的问题,codeceptJS 有一个很好的使用生成器的示例:

Scenario('use page title', function*(I) {
  // ...
  var password = yield I.grabTextFrom('#password');
  I.fillField('password', password);
});

http://codecept.io/acceptance/

【讨论】:

  • 您的代码绝对可以工作。但是,我相信您错过了抓取器不起作用的部分。我必须能够从元素中获取数据以及从 executeScript 中返回信息。在某些情况下,我必须使用 JavaScript 来计算结果并检查它是否正确。如果没有 yield 就无法做到这一点,并且 yield 会使脚本崩溃。我只使用了 I.grabTitle() 作为一个简单的例子来演示这个 bug。
  • 开发人员说这是一个错误。我已经更新了这个问题。相当严重的错误,因为它阻止了我们的前进...... :(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-04
  • 2013-03-01
  • 2023-04-10
  • 2018-05-27
  • 1970-01-01
  • 2017-09-01
  • 1970-01-01
相关资源
最近更新 更多