Nightwatch.js e2e测试如何在全局范围内设置jQuery?

时间:2017-10-11 06:48:51

标签: jquery nightwatch.js

我试图在我的Nightwatch.js e2e测试中使用jQuery选择器 根据这个答案:

How to write a nightwatch custom command using jquery

我需要在我的应用程序的全局范围内提供jQuery才能使用它。 (否则我遇到了$(选择器)引用麻烦...

'use strict';

var ClickElementByIndex = function(className, index) {
  if (!index) {
    index = 0;
  }

  this.execute(function(selector, i) {
    var $item = $(selector + ':eq(' + i + ')');
    if (!!$item) {
      $item.click();
      return true;
    }
    return false;
  }, [className, index], function(result) {
    console.info(result);
  });
};

exports.command = ClickElementByIndex;

1 个答案:

答案 0 :(得分:1)

您只需要将jquery包作为依赖项添加到*bunch of stuff saying everything has worked so far* ---------------------------------------------------------------------- Ran 8 tests in 239.930s OK Creating test database for alias 'default'... System check identified no issues (0 silenced). Destroying test database for alias 'default'... [Superlists] $ /bin/sh -xe /tmp/jenkins3451109904869093293.sh + phantomjs lists/static/tests/runner.js lists/static/tests/tests.html ,然后您必须在文件中要求package.json。通常,您已经为jquery完成了此操作。要添加包nightwatch作为dep,请从项目的根目录运行此命令:

jquery

然后检查您是否为npm install jquery --save-dev 添加了jquery附加行,请验证其是否有效。它看起来像这样:

package.json

注意:如果尚未存在"devDependencies": { "jquery": "^3.2.0", ,请转到项目中的顶级文件夹并运行package.json。完成提示后,您可以使用上述命令将npm initjquery添加为dev-deps。

最后,要在自定义命令或声明中要求nightwatch,只需将jquery添加到文件顶部即可将const $ = require('jquery')指定为$