вот странно очень, я так и сделал сразу, по логике так то оно так, но чето не применяются листенеры
@BeforeSuite
public void setUp() {
addListener(new EventListener());
addListener(new Highlighter());
}
и в тестах унаследовался от класса BaseTest
и такой еще вопросик, в документациях посмотрел, как тесты пишутся, но с вейтами немного не понял, набыдлокодил как-то так:
- есть страничка при вводе на которой в поле урла, появляется лоадинг-бар
- когда лоадинг-бар доходит, до 100% - он пропадает и появляется новый контент завернутый в дивчик с классом -
.pagespeed-results
не костыль ли это я сделал? Может есть проще решение?
public class GooglePageSpeed extends BasePage implements Waiting {
private static final Logger logger = LogManager.getLogger(GooglePageSpeed.class);
public GooglePageSpeedResultsPage searchFor(String urlCriteria) {
// нахожу поле и ввожу туда урл, затем нажимаю Enter
$(".url").val(urlCriteria).pressEnter();
// жду пока пропадет прогресс-бар с классом - ".jfk-progressStatus"
waitUntilPagesIsLoaded(".jfk-progressStatus", disappears, 20000);
// ожидаю нового элемента с контентом, пока он не появится на странице - ".pagespeed-results"
$(".pagespeed-results").shouldBe(present);
// возвращаю себе новый обьект странички, в котором уже работаю с контентом, который подгрузился после поиска
return page(GooglePageSpeedResultsPage.class);
}
}
public interface Waiting {
default void waitUntilPagesIsLoaded(String cssSelector, Condition condition, int timeInMilliseconds) {
$(cssSelector).waitUntil(condition, timeInMilliseconds);
}
}
не усложнил ли я с ожиданиями? Может есть проще? Просто:
$(".pagespeed-results").shouldBe(present);
не канает
Я так понял, по докам, оно ждет 4 секунды, а прогресс-бар может лоадиться и 6 секунд и тогда часть тестов с урлом падает, а часть нет