Странное поведение на ожиданиях Selenide

Тест не проходит если использую Selenide.sleep и Duration.ofSeconds()

Я сначала да же не понял в чем проблема. Думал что то с локаторами. У меня стол сначала Selenide.sleep(5000). Потом вызывался метод click по кнопке. И я на тесте всегда получал
на кнопке Expected: clickable: interactable and enabled
и не мог понять в чем проблема. Спрашивал ЧатGPT, весь DOM просмотрел на наличие скрытых и теневых элементов. Потом убрал Sleep и все, тест прошел без проблем.
Использую версию Selenide 7.7.0.
А на Duration.ofSeconds() у меня вообще тест зависает в бесконечность. ПРосто висит и не прибивается никогда. Может 10 минут висеть. Кто с подобным сталкивался ?

Я убрал все слипы и ожидания и тесты ходят.

У меня не получилось понять проблема в моих тестах, или версии Selenide.

Код

    @Step("Click on the 'Pay and subscribe' button.")
    public AccountPage clickPayAndSubscribeButton() {
        Selenide.sleep(50000);
        payAndSubscribeButton.click();
        return page(AccountPage.class);
    }
и
    @Step("Assert: that the subscription type title field has {assertText}.")
    public AccountPage assertionSubscriptionTypeTitle(String assertText) {
        subscriptionTypeTitle.shouldHave(Condition.text(assertText), Duration.ofSeconds(1000));
        return this;
    }

Selenide 7.7.0
Java 17
Junit 5

Я так понимаю, проблему уже решили в другом чатике? Хоть бы поделились, в чём там было дело…

Думается, что вы могли запутаться в своих ожиданиях.

  1. В методе clickPayAndSubscribeButton() нет смысла использовать Selenide.sleep(50000);. Если стоит цель нажать на кнопку, то следует ожидать доступность кнопки через should.. методы
  2. Написали, что может висеть 10 минут. Ну так у вас стоит время ожидания Duration.ofSeconds(1000), это чуть меньше, но выглядит так будто это причина жалобы.

Если shouldHave не дождался элемента и упал, то там есть ошибка, в которой написаны полезные детали, которые помогают понять “почему”.

Если спрашивали “великий чатжипити”, то он должен был ответить примерно тоже самое. Странное дело :upside_down_face:

Добрый день, прошу прощения. Уезжал и не написал. Я провел много экспериментов, как всегда больше подозревал свой код и проект)). Я завел новый чистый проект и попробовал сделать такое же ожидание на нем и проблема повторилась, так же попробовал версии Selenide, которые были раньше и на моих других проектах, такое ожидание работало 100 процентов. И проблема так же оставалась. Если исключить проект и библиотеку, остается только сайт ))) Проблема в странице оплаты на которую потом редиректит после выбора подписки это https://checkout.stripe.com. И если ее не рефрешнуть, то наблюдается вот такое странное поведение с ожиданием. Получается решил проблему просто рефрешем страницы.

Ожидание ставил перед кликом, потому что сначала был редирект на другую страницу и кнопка успевала нажаться, а так как страница не прогрузилась полностью то дальнейшие шаги не проходили. Решил проблему рефрешем страницы. Как описал выше, провел кучу експериментов и выяснил что проблема на странице партнера.