Как выполнить статическое ожидание в селене с использованием Java?

Это довольно сложно. Куда бы я ни посмотрел, люди все время говорят мне, чтобы они использовали явные, неявные и беглые ожидания. Эти ожидания делают так, чтобы вы делали паузу на основе элементов. Однако покровительствовать нам и удалять инструменты и опции не очень хорошая идея. В моем текущем конкретном рассоле у ​​меня есть кнопка, которая должна исчезать, если кто-то нажимает на нее слишком быстро. Тем не менее, он также предназначен для немедленного показа либо. Поэтому вам нужно подождать, пока он не появится, затем подождать достаточно времени, чтобы пройти, и только после этого нажать кнопку. С предложениями мне дают это невозможно. В этом случае необходимо использовать статическую паузу или сон. По какой-то причине я даже не могу использовать спящий поток, потому что кажется, что он устарел в самой Java 8 или что-то в этом роде.

3 ответа

Неявное ожидание:

driver.manage().timeouts().implicitlyWait(TimeOut, TimeUnit.SECONDS);   

Явное ожидание:

WebDriverWait wait = new WebDriverWait(WebDriverRefrence,TimeOut);

Какой источник заставляет вас думать, что java.lang.Thread будет устаревшим?

Так что даже в документации по Java 11 это не рекомендуется.

Так что, если вы хотите использовать его, не стесняйтесь.:-)

Возможно, через термины статическое ожидание и статическая пауза, которые вы имели в виду Thread.sleep() который по-прежнему полезен во многих отношениях.

Тем не менее, выполнение ваших тестов с помощью Selenium, вызывающих сон, не будет элегантным решением для устранения проблемы, вызывающей сон. Thread.sleep(1000); ухудшает общую производительность выполнения теста. Вы можете найти подробное обсуждение в Selenium нуждается в сне, прежде чем перейти к следующей странице.

Если вам нужно вызвать ожидания, неявное ожидание - это хороший способ начать. Вы можете найти подробное обсуждение в разделе Использование неявного ожидания в селене. Однако, поскольку текущие веб-приложения построены с использованием JavaScript, Angular, ReactJS и т. Д., Явное ожидание будет способом продвижения вперед.

Итак, двигаясь вперед, вы можете перейти к явным ожиданиям. Вы можете найти подробное обсуждение в разделе Замена неявного ожидания явным ожиданием (selenium webdriver & java).

На этом этапе реализация Fluent Wait будет намного проще, и вы можете найти подробное обсуждение в разделе Implicit против Explicit против Fluent Wait.

Другие вопросы по тегам