如何测试表格中的无限滚动?

时间:2019-04-04 16:32:23

标签: protractor

我正在角度应用程序中测试无限滚动。滚动条是主页中表格的一部分。主页本身没有任何滚动条,如果我将鼠标悬停在表格上并滚动,将会加载更多元素。

最初,屏幕上显示50行,其中表中只有10行可见。滚动到最后一个元素时,下一个50将被加载到UI中。这将一直持续到检索到所有元素为止。

我尝试单击表格的第一行并使用滚动

dashboard.Row1.click()         browser.executeScript(“ window.scrollBy(0,200)”);

这不会滚动表格。我不确定这是否是解决问题的正确方法。我也尝试过使用偏移量,但也无济于事

这是我的HTML:

<tbody infinite-scroll="$ctrl.loadInventories()" infinite-scroll-container="'.table-wrapper'" md-body="" class="md-body ng-isolate-scope">
<!-- ngRepeat: data in $ctrl.inventories | orderBy: myOrder -->
<tr class="" ng-repeat="data in $ctrl.inventories | orderBy: myOrder" style="">

<!-- ngRepeat: data in $ctrl.inventories | orderBy: myOrder -->
<tr class="" ng-repeat="data in $ctrl.inventories | orderBy: myOrder" style="">

<!-- ngRepeat: data in $ctrl.inventories | orderBy: myOrder -->
<tr class="" ng-repeat="data in $ctrl.inventories | orderBy: myOrder" style="">

<!-- ngRepeat: data in $ctrl.inventories | orderBy: myOrder -->
<tr class="" ng-repeat="data in $ctrl.inventories | orderBy: myOrder" style="">

1 个答案:

答案 0 :(得分:1)

您可以尝试使用scrollIntoView()滚动到表格的最后一行。就像

const tableRows = element.all(by.css('tbody tr'));
browser.executeScript(e => e.scrollIntoView(), tableRows.last());

或更紧凑,也许可读性更低

browser.executeScript(e => e.scrollIntoView(), $$('tbody tr').last());