如果标题超过屏幕宽度,如何在Protractor测试中验证角网格的所有列标题



我正试图在我的Angular应用程序中为以下需求编写一个Protractor测试:

我正在尝试验证下面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网格中的所有列标题吗?

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

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

最新更新