量角器:无法从Web表中的多行检索所有值

时间:2017-07-25 20:25:32

标签: javascript angularjs protractor

我有一个包含多行的网络表。我想检索那些数据并验证。但由于某种原因,我的方法只返回第一行的值。有人可以说出错了吗?

方法:

    validatePolicyVersionTable(){
       return element.all(by.repeater('row in table.filtered track by table.idPropertyFn(row)')).then(numOfRows=>{
           let length = numOfRows.length;
           let tableDataArray = [];
           for (let i = 0; i < length; i++) {
               let rows= element(by.repeater('row in table.filtered track by table.idPropertyFn(row)').row(i));
               let cells = rows.all(by.tagName('td'));
               tableDataArray= cells.map(cellText=>{
                  return cellText.getText();
               });
           }
           return tableDataArray;
       })
   }

1 个答案:

答案 0 :(得分:0)

我会做这样的事情

&#13;
&#13;
validatePolicyVersionTable() {
  const rows = element.all(by.repeater('row in table.filtered track by table.idPropertyFn(row)'));

  return rows.map((row) => row.$$('td').getText());
}
&#13;
&#13;
&#13;

如果您要获取ElementArrayFinder的文本,则会返回一个字符串数组(row.$$('td').getText())。你的结果可能是这样的

[
  ['row1CellText1', 'row1CellText2', 'row1CellText3'],
  ['row2CellText1', 'row2CellText2', 'row2CellText3'],
  ['row3CellText1', 'row3CellText2', 'row3CellText3']
]