Как выполнить статическое ожидание в селене с использованием Java? - PullRequest
0 голосов
/ 31 марта 2019

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

Ответы [ 3 ]

0 голосов
/ 31 марта 2019

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

Так что даже в Java 11 документах это не устарело.

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

0 голосов
/ 31 марта 2019

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

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

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

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

На этом этапе реализация Текущее ожидание будет намного проще, и вы можете найти подробное обсуждение в Неявный против Явного против Свободного ожидания .

0 голосов
/ 31 марта 2019

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

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

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

WebDriverWait wait = new WebDriverWait(WebDriverRefrence,TimeOut);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...