var DrpStack = browser.findElement(by.xpath(XPath))
var Elems = DrpStack.findElements(by.tagName(TagName))
Elems.then(function(list){
for (var i = 0; i < list.length; i++) {
if (list[i].getAttribute("aria-pressed")=='true') {
Labl1.list[i].getAttribute("onlabel");
} else {
console.log("FAIL");
}
}
Q.all(Labl1).done(function (result) {
// Q.All will print the results when the lookups and processing are done
console.log(result.length);
console.log(result);
});
});
我在这里检查“咏叹调”的属性是否属于&#39;是真还是假。如果为true,则元素被推入数组,否则应该打印false。 它不起作用,日志始终打印失败。我做错了什么请帮忙。
答案 0 :(得分:1)
方法getAttribute
返回Promise。所以你首先需要解决它才能获得价值。
在您的情况下,您可以使用promise.filter
过滤属性:
var filter = protractor.promise.filter;
filter(browser.findElements(...), (elem, i) => {
return elem.getAttribute("aria-pressed").then(attr => {
if(attr === "true") return true;
console.log(`failed attribute at index {i}`);
});
}).then(results => {
console.log("elements with attribute:", results);
});