Существует функция в pageObjectКак использовать цикл в nightwatch.js
this.openFilmPage = function() {
browser.waitForElementVisible("div[class='pg'", 1000);
for (var i = 0; i < 4; i += 1) {
console.log('Итерация № ' + i);
browser.waitForElementVisible("div[class='app'] > div[class='pg'] > div[class='home carousel'] > div[class='home-lst carousel-lst'] > div[class*='home-lst-itm nav-itm']:nth-of-type(" + i + ") > div[class='badge badge-currency']", 100, function(result) {
if (result.value) {
return browser;
console.log('Платный фильм обнаружен');
} else {
return browser;
console.log('Платный фильм отсутствует');
}
});
}
return browser;
}
Существует задача в тесте
'TC67 Переход на страницу платного фильма': function(browser) {
browser
.page.App().open()
.page.App().openFilmPage()
.end();
}
После запуска я получаю следующий результат в консоли
Выполнение: TC67 Переход на страницу платного фильма Итерация № 0 Итерация № 1 Итерация № 2 Итерация № 3
Тогда есть чек, один раз в нулевом положении, тест не пройден, потому что в этой позиции не ожидается пункт.
Я ожидаю, что все тесты будут выполняться один за другим, и в результате я получаю элемент, который соответствует указанному пути css.
Но, как показал опыт, это не так, циклы, похоже, работают в асинхронном режиме, так как его можно преодолеть?
PS. Извините за мой английский.