Селенид // Как отработает waitUntil(Condition.disappear) в случае, если элемент не был appeared ?

Привет.

Вопрос такой возник при использовании
$("#id").waitUntil(Condition.disappear, 7_000);
Суть такая, что этот #id появляется после того, как выбирается какое-то значение в другом dropdown.
Этот #id - просто спиннер. Как только он пропадет, будет означать что данные в дропдауне загрузились и можно выбирать.

Вопрос: что, если #id этого спиннера не появится вообще ?
Иными словами, как отработает селенидовский waitUntil(Condition.disappear) в случае, если он даже не был appeared ?
Кинет exception ? Подождет и продолжит выполнение ?

1 лайк

Ответ на вопрос - будет ошибка - элемент не найден.

А как тогда отработать вариант, когда он может не появиться ?
Сначала проверять его на appear ?

Если он не появляется - то это ошибка же тогда.

Не факт :slight_smile:
Например, выбирается значение из первого селекта ( у которого всего, скажем, 5 значений на выбор). После этого подтягиваются значения для второго селекта ( их очень мало, скажем, 3 штуки и посему спиннера не появляется). Ошибки нет :slight_smile:
Ну, т.е., значения второго зависят от того, какое было выбрано в первом.
Соответственно, спиннер на втором может как появиться ( в случае большого кол-ва данных ), так и нет ( не уверен, что совсем нет ).

Тогда проще на него вообще не обращать внимания.

Не получится.
Если сетить значения с той скоростью, с которой это делается, не получается далее сохранить )
В этом вся “беда”.

waitUntil(disappear) - это то же самое, что и waitUntil(not(visible)). То есть ему всё равно, был ли элемент хоть когда-нибудь. Если элемента не было и нет, тест будет зелёным.

3 лайка

Супер, спасибо !