Это не разные типы ожидания, WebDriverWait
- это специализированная версия FluentWait
с некоторыми опциями конструктора.
В библиотеке WebDriver java в наследовании есть 3 типа Дерево WebDriverWait:
Wait
- это обобщенный c интерфейс для ожидания, пока условие не станет истинным или не равным нулю. Очень базовый c и не определяет, как все это делается.
FluentWait
является реализацией интерфейса Wait
, для которого могут быть настроены время ожидания и интервал опроса на лету. Этот класс является обобщенным c и требует типа <T>
WebDriverWait
extends FluentWait
и является специализацией, которая использует WebDriver
экземпляров.
Предпочитает WebDriverWait вместо FluentWait, когда ваш generi c type <T>
будет <WebDriver>
. Он направлен на облегчение строительства.
С учетом данного экземпляра WebDriverWait
WebDriverWait wait = new WebDriverWait(driver, 30);
Это то, на что похож эквивалент FluentWait для создания
FluentWait<WebDriver> wait = new FluentWait<>(driver, new SystemClock(), Sleeper.SYSTEM_SLEEPER);
wait.withTimeout(Duration.ofSeconds(30));
wait.pollingEvery(Duration.ofMillis(500));
wait.ignoring(NotFoundException.class);
Это разница настолько велика. Полученный объект будет вести себя так же. WebDriverWait просто дает вам эти значения по умолчанию бесплатно.