无法循环遍历数组比较文本值,未定义的结果与Protractor

时间:2016-03-05 02:32:26

标签: javascript angularjs testing protractor

我是新的量角器和JavaScript,并努力将分隔的字符串与数组进行比较。

我要做的是找到所有元素的列表,然后从每个元素循环遍历数组,将文本值与分隔的字符串进行比较,但是分隔的字符串值是“未定义的”#39;

element.all(by.css('.itemField')).then(function (allFieldItems) {
  var  toCompare= ["AGO", "9"]
  for (var i = 0; i < toCompare.length; i++) {
    var valueToCompare = toCompare[i]
    allFieldItems[i].getText().then(function (text) {
      if(text != valueToCompare[i]){
        console.log("Values don't match")
          }
        }.bind( i))
      }
})

问题在于&#34; if(text!= valueToCompare [i])&#34; valueToCompare [i]&#34;总是“不确定”&#39;我正在寻求有关如何在不使用期望陈述的情况下解决此问题的帮助。

1 个答案:

答案 0 :(得分:1)

您可以直接致电getText()结果element.all()

var toCompare = ["AGO", "9"];
element.all(by.css('.itemField')).getText().then(function (texts) {
    for (var i = 0; i < toCompare.length; i++) {  
        if (texts[i] != toCompare[i]) { 
            console.log("Values don't match");
        } 
    }
});

或者,您甚至可能期望这样(不确定这是否是您实际上要做的):

expect($$('.itemField').getText()).toEqual(toCompare);