我是量角器和JavaScript的新手,正在努力将定界字符串与数组进行比较。

我想做的是找到所有元素的列表,然后从每个元素中循环遍历数组,以将文本值与定界字符串进行比较,但是定界字符串的值是“ undefined”

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


问题是,“ if(text!= valueToCompare [i])”行始终是“未定义”的,我正在寻求有关如何在不使用Expect语句的情况下解决此问题的帮助。

最佳答案

您可以直接在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);

09-25 18:19