Как узнать что диалог загрузки отработал и скрылся со страницы

При загрузке данных в одну из таблиц, появляется диалог с прогресс баром, после его закрытия(окончание загрузки) кнопка “Дальше” на странице становится активной.
Задача простая дождаться когда пропадет этот диалог и кликнуть кнопку Дальше
Но все мои попытки это реализовать не удались
Сейчас такой код:

if (page.waitVanish(dialogLoadData))
        page.click(nextButton);
    else
        System.out.print("Help me");

В результате - кнопка Дальше жмется еще до того как диалог пропадает

Использую последнюю версию Sikuli, пишу на Jave

Вейтер для ожидания в других местах работает корректно?
Было бы очень неплохо увидеть что в вейтере, так как есть ощущение что Вы просто переходите в else без клика и все.

1 лайк

А мне интересно, какая все же версия у вас? Ибо последняя - это префайнал 1.1.0, взятая из nightly builds.

Если же вы действительно взяли последнюю, рекомендую попробовать механизм obeserver’ов, которые можно навесить с разными событиями: onAppear / onVanish / onChange.

Пример работы с относительно свежими API есть в местном GitHub.

1 лайк

В других работает без проблем.
Проверял с помошью дебага - заходит в if нормально и кликает по кнопке

Решил проблему так

if (page.waitVanish(dialogLoadData,FOREVER)) {
        page.click(nextButton);
        System.out.println("Privet");
    }
    else
        System.out.println("Help");

т.е. добавил FOREVER, а также изменил немного similar “dialogLoadData” патерна

Да у меня последняя 1.1.0. Жду 2.0.0

2.0.0 будет нескоро, ибо выпуск стабильной 1.1.0 уже тянется с ноября месяца прошлого года. Но, тем не менее, 2ю версию уже сейчас можно собрать самому.