gpt4 book ai didi

javascript - 如何从 Protractor 的 promise 链中检索数据?

转载 作者:行者123 更新时间:2023-11-28 20:20:03 25 4
gpt4 key购买 nike

我有一个函数,可以正确检索元素的索引,其中文本 ===“check”。在console.log中清楚的打印出来:

function getIndex() {
return element.all(by.css(".palette__item.ng-scope>span")).then(function (colorList) {
colorList.forEach(function (elem, index) {
elem.getText().then(function (text) {
if (text == "check") {
console.log(index);
return index;
}
});
});
});
}

然后,我尝试了很多不同的方法,如何从中检索数据,但都没有成功。最后一种方法是这样的:

var res = null;
webDriver.promise.fullyResolved(getIndex()).then(function (index) {
res = index;
});
console.log(res);

所以,在这里我尝试在函数内部初始化 res 值,这保证了任何 promise 的解析,但它不起作用,并返回 null。

我想,我在 getIndex() 函数中有错误,也许,我把 return opertor 放在了错误的地方,但我在这里需要帮助。我完全不知道如何让它发挥作用。请帮忙。

最佳答案

您使问题过于复杂,请使用 reduce() ,而不是“forEach”:

function getIndex() {
return element.all(by.css(".palette__item > span")).reduce(function (acc, elem, index) {
return elem.getText().then(function (text) {
if (text == "check") {
return index;
}
});
}, -1);
}

用法:

getIndex().then(function (index) {
console.log(index);
});

附带说明 - 尽量不要在您的定位器中使用 ng-scope 类 - 它是一个纯技术 Angular 特定类,不会给您的定位器带来意义。

关于javascript - 如何从 Protractor 的 promise 链中检索数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41245152/

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