
- Популярные категории
Структура данных
Сети
СУБД
Операционная система
Java
MS Excel
iOS
HTML
CSS
Android
Python
Программирование на C
C++
C#
MongoDB
MySQL
Javascript
PHP
Физика
Химия
Биология
Математика
Английский
Экономика
Психология
Социальные науки
Модные исследования
Правовые исследования
- Рекомендуемые материалы для чтения
- Конспекты к экзамену UPSC IAS
- Передовой опыт разработчиков
- Вопросы и ответы
- Эффективное составление резюме
- Вопросы при собеседовании на должность HR
- Словарь компьютерных терминов
- Кто есть кто
Fluent wait выполняет какие действия?
Fluent-ожидание — это динамическое ожидание, которое заставляет систему приостановить выполнение при определенном условии, которое проверяется с некоторой частотой до возникновения исключения. Поиск элемента в DOM осуществляется не постоянно, а с определенным временным интервалом.
Например, если время ожидания составляет 5 секунд, то FluentWait осуществляет мониторинг DOM с определенной периодичностью (заданный интервал времени). В FluentWait необходимо создавать настраиваемые методы ожидания в соответствии с определенными условиями.
Синтаксис −
Wait<WebDriver> w = new FluentWait< WebDriver >(driver) .withTimeout (10, SECONDS) .pollingEvery (2, SECONDS) .ignoring (NoSuchElementException.class)
Пример
import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import java.util.concurrent.TimeUnit; import org.openqa.selenium.support.ui.Wait; import org.openqa.selenium.support.ui.FluentWait; public class Fluentwt { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe"); WebDriver driver = new ChromeDriver(); String url = "https://tutorialspoint.com/index.htm"; driver.get(url); //implicit wait with time in seconds applied to each elements driver.manage().timeouts().implicitlyWait(12, TimeUnit.SECONDS); //Clicking on Coding Ground link driver.findElement(By.xpath("//span[text()=’Coding Ground’]")).click(); // fluent wait declaration Wait<WebDriver> w = new FluentWait<WebDriver>(driver).withTimeout (Duration.ofSeconds(30)) .pollingEvery(Duration.ofSeconds(3)).ignoring( NoSuchElementException.class); WebElement fl = w.until(new Function<WebDriver, WebElement>() { // customized condition for fluent wait public WebElement apply(WebDriver driver) { if (driver.findElement(By.xpath("[//img[@title=’Whiteboard’")) .isDisplayed()) { return true; }else { return null; } } }); driver.quit(); } }
广告