【问题标题】:How to loop through the first column of each row of an ag-grid in Protractor?如何在量角器中遍历 ag-grid 每一行的第一列?
【发布时间】:2020-11-20 11:36:38
【问题描述】:

我正在尝试在我的量角器测试中测试 ag-grid

我目前能够遍历每一行以验证以下行中的所有列:

for (i = 0; i < 10; i++) {
    element.all(by.css(`div[row-id="${i}"] div`))            
       .map(function (cell) {
         return cell.getText();
     })
       .then(function (cellValues) {
         expect(cellValues).toEqual(["Toyota", "Celica", "35000"]);
    });
}

但我不想验证每一列,我只想验证每一行的第一列。

谁能告诉我我需要对我的代码进行哪些更改才能做到这一点?

【问题讨论】:

  • 我认为你所有的问题都来自这个.then 语法。我建议您改为查看async/await Promise 语法。你的生活会变得如此轻松

标签: angular protractor ag-grid ag-grid-angular


【解决方案1】:

这比你想象的要容易。只需从每一行获取所有单元格,然后只返回第一个单元格,在该单元格上获取 getText(),然后断言。

for (i = 0; i < 10; i++) {
  element.all(by.css(`div[row-id="${i}"] div`))
    .first()
    .getText()
    .then(cellText => {
       expect(cellText).toEqual('Something');        
     });
}

【讨论】:

  • 非常感谢您的回答,但是当我尝试使用它时,我收到以下错误消息:失败:索引超出范围。试图访问 index: 0 处的元素,但只有 0 个元素与定位器 By(css selector, div[row-id="0"] div.ag-cell-value)
  • 只需将选择器改回原来的选择器即可。没有.ag-cell-value 位。那时应该工作。我已经更新了答案中的示例。
猜你喜欢
  • 1970-01-01
  • 2019-05-21
  • 1970-01-01
  • 2018-11-23
  • 2018-10-12
  • 1970-01-01
  • 2021-10-01
  • 2020-12-07
  • 1970-01-01
相关资源
最近更新 更多