我试图在我的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;
答案 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 init
和jquery
添加为dev-deps。
最后,要在自定义命令或声明中要求nightwatch
,只需将jquery
添加到文件顶部即可将const $ = require('jquery')
指定为$
。