Я тестирую бесконечную прокрутку с помощью транспортира в угловом приложении. В таблице изначально есть 50 строк, которые отображаются при загрузке URL-адреса. После прокрутки отображаются следующие 50 строк. аналогично отображается 800-900 рядов. Это означает, что мне нужно прокрутить как минимум 16-18 раз. Также существует некоторое время загрузки примерно 3 секунды для загрузки следующих 50 строк. Как проверить это с помощью Protractor?
Я использую прокрутку в View для загрузки строк.
var tableRows = element.all(by.css('tbody tr'));
let lastCount = 0
let count = -1
const go = () => tableRows.count().then(function (rowCount) {
lastCount = count
count = rowCount
console.info("Count:" +count)
console.info("lastCount: "+lastCount)
browser.executeScript(e => e.scrollIntoView(), tableRows.last());
browser.sleep(3000)
if (lastCount !== count) {
console.info("going again")
go()
}
else{
console.info("In Else")
callback();
Вот мой 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 = "">
Вы можете попробовать подсчитать количество tr
. Если начальное количество tr
не равно конечному количеству tr
, продолжайте цикл, и если количество совпадает, мы можем подтвердить, что все строки загружены и больше не осталось. Надеюсь, это поможет вам
Обновил ответ. Выход после использования обратного вызова в операторе else.
Я попытался использовать счетчик, и он работал, как и ожидалось. Но как выйти из положения. Я добавил свой код в ответ. Если все строки загружены, выполнение происходит внутри цикла else и печатается In Else. Но как разорвать петлю