【问题标题】:Comparing Attributes of an element比较元素的属性
【发布时间】:2016-11-18 09:40:41
【问题描述】:
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);
                });
            });

这里我正在检查“aria-pressed”的属性是真还是假。如果为真,则将该元素推入数组,否则应打印为假。 它不起作用,日志总是打印失败。我做错了什么。请帮忙。

【问题讨论】:

    标签: javascript arrays protractor


    【解决方案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);
    });
    

    【讨论】:

      猜你喜欢
      • 2012-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多