0

我正在尝试在我的 Angular 应用程序中为以下要求编写量角器测试:

我正在尝试验证下面我的 Angular 网格中所有列标题的文本:

myPage.column_headers
      .map(function (header) {
          return header.getText()
      }).then(function (headers) {
    expect(headers).toEqual(['Column1', 'Column2', 'Column3', 'Column4', 'Column5', 'Column6']);
});

当我运行它时,我收到以下控制台错误:

Expected $.length = 3 to equal 6.
Expected $[0] = 'Col1' to equal 'Column1'.
Expected $[1] = 'Col2' to equal Column2'.
Expected $[2] = 'Col3' to equal 'Column3'.
Expected $[3] = undefined to equal 'Column4'.
Expected $[4] = undefined to equal 'Column5'.
Expected $[5] = undefined to equal 'Column6'.

作为实时用户,当我导航到页面时,只有 3 列立即对用户可见。

要查看其他 3 列,您需要滚动页面/网格,所以我想知道这是否是该测试因上述错误而失败的原因。

如果是这种情况,有人可以告诉我需要进行哪些更改,以便我可以验证 Angular 网格中的所有列标题吗?

4

1 回答 1

1

如果元素在 DOM 中但不存在,则应使用.getAttribute('innerText')而不是.getText()

如果元素不在 DOM 中,那么您必须滚动到这些元素。将发送一个请求,解决后您可以获得其文本值。

于 2020-09-23T18:26:46.743 回答