Javascript 比较元素的属性 var DrpStack=browser.findElement(by.xpath(xpath)) var Elems=DrpStack.findElements(按.tagName(标记名)) 元素then(函数(列表){ 对于(变量i=0;i

Javascript 比较元素的属性 var DrpStack=browser.findElement(by.xpath(xpath)) var Elems=DrpStack.findElements(按.tagName(标记名)) 元素then(函数(列表){ 对于(变量i=0;i,javascript,arrays,protractor,Javascript,Arrays,Protractor,这里我检查'aria pressed'的属性是真是假。如果为true,则该元素被推送到数组中,否则它应该打印false。 它不工作,日志总是打印失败。我做错了什么。请提供帮助。方法getAttribute返回承诺。因此,您首先需要解析它以获得值 在您的情况下,您可以使用promise.filter过滤属性: var DrpStack = browser.findElement(by.xpath(XPath)) var Elems = DrpStack.findEleme

这里我检查'aria pressed'的属性是真是假。如果为true,则该元素被推送到数组中,否则它应该打印false。
它不工作,日志总是打印失败。我做错了什么。请提供帮助。

方法
getAttribute
返回承诺。因此,您首先需要解析它以获得值

在您的情况下,您可以使用
promise.filter
过滤属性:

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