Maj*_*juj 2 javascript promise nightwatch.js
我正在从量角器切换到Nightwatch.js,我在使用Nightwatch处理承诺的方式时遇到了一些困难.
举个例子,我试图计算满足给定标准的元素数量.count函数位于页面对象中,因此与测试本身分开:
页面对象命令:
countToDoList: function(browser) {
browser.elements('css selector', "input[ng-model='todo.done']", function(result){
return result.value.length;
});
}
Run Code Online (Sandbox Code Playgroud)
和测试中的电话:
'Angular - 1' : function(browser) {
var angular = browser.page.angularPO();
var mainPage = angular.section.main;
angular.openMainPage(browser);
var countToDoBoxes = 0;
countToDoBoxes = mainPage.countToDoList(browser);
console.log("countToDoBoxes = " + countToDoBoxes);
browser.end();
}
Run Code Online (Sandbox Code Playgroud)
这将返回"countToDoBoxes = undefined".基于我对Protractor的(短期)经验,我认为这是由于函数没有履行承诺,当它传递给"countToDoBoxes"时.
有没有办法让这项工作?
我找不到API描述elements,但是这里是你的代码,修改为返回Bluebird的承诺.(您可以使用您选择的Promise库执行类似操作.)
countToDoList: function(browser) {
return new Promise(function(resolve, reject) {
browser.elements('css selector', "input[ng-model='todo.done']", function(result){
resolve(result.value.length);
});
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3758 次 |
| 最近记录: |