无法循环访问比较文本值的数组,使用量角器未定义的结果

Cannot loop through array comparing text values, undefined result with Protractor

本文关键字:量角器 结果 未定义 数组 访问 循环 比较 文本      更新时间:2023-09-26

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

我试图做的是找到所有元素的列表,然后从每个元素中循环遍历数组以将文本值与分隔字符串进行比较,但分隔字符串值是"未定义的"

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]) "valueToCompare[i]"行总是"未定义",我正在寻找有关如何在不使用期望语句的情况下解决此问题的帮助。

您可以直接根据element.all()的结果调用getText()

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