我创建了一个获取所有链接并单击它们,然后使用另一种方法处理窗口的函数。一切正常,但现在我想提出一个条件,即仅单击几个链接。所以功能就像:
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();
}
}
});
};
我想让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 - 如何从 promise 中获得值(value)以实现 Protractor ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30112165/