gpt4 book ai didi

javascript - 如何用 Nightwatch 履行 promise

转载 作者:行者123 更新时间:2023-12-03 17:10:35 26 4
gpt4 key购买 nike

我正在从 Protractor 切换到 Nightwatch.js,我在 Nightwatch 处理 promise 的方式上遇到了一些困难。

举个例子,我正在尝试计算满足给定条件的元素的数量。计数函数位于页面对象中,因此与测试本身分开:

页面对象命令:

    countToDoList: function(browser) {
browser.elements('css selector', "input[ng-model='todo.done']", function(result){
return result.value.length;
});
}

和测试中的调用:

'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();
}

这将返回“countToDoBoxes = undefined”。根据我使用 Protractor 的(短期)经验,我认为这是由于函数在传递给“countToDoBoxes”时没有履行 promise 。

有没有办法让它工作?

最佳答案

我找不到 elements 的 API 描述,但这是您的代码,已修改以返回 Bluebird promise 。 (您可以使用您选择的 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);
});

});
}

关于javascript - 如何用 Nightwatch 履行 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33607721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com