我创建了一个函数来获取所有链接并单击它们,然后使用另一种方法处理窗口。一切正常,但现在我想设置一个条件,即只点击几个链接。所以函数是这样的:
this.getLinks = function(){
browser.driver.findElements(that.links).then(function(foundElements){
var val;
for(var i =0;i<foundElements.length;i++){
browser.sleep(3000);
foundElements[i].getText().then(function(textValue){
val = textValue;
**console.log(val);**
});
if(val != '??????' || val != '?????????' || val != '??????'){
foundElements[i].click();
that.getWindows();
}
}
});
};
我想从 promise 中获取 val 的值,这样我就可以设置一个条件,即只单击选定的链接。
最佳答案
使用filter()
根据文本值和 each()
过滤掉元素将函数应用于过滤元素的每个元素:
this.getLinks = function() {
element.all(that.links).filter(function(elm) {
return elm.getText().then(function (val) {
return val != '??????' || val != '?????????' || val != '??????';
});
}).each(function (elm) {
elm.click();
});
};
关于testing - 如何在 Protractor 中从 promise 中获取值(value)到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30112165/