Selenium WebDriverWait — это одно из явных ожиданий.
Явные ожидания ограничены определенным веб-элементом. Явное ожидание — это код, определяемый вами для ожидания выполнения определенного условия, прежде чем продолжить работу в коде.
Явное ожидание бывает двух типов:
- WebDriverWait
- FluentWait
Нажмите на эту ссылку, чтобы перейти к FluentWait.
WebDriverWait в Selenium:
применяется к определенному элементу с определенным ожидаемым условием и < em>время. Это ожидание применяется только к указанному элементу. Это ожидание также может вызвать исключение, если элемент не найден.
Мы могли бы избежать создания исключения в Selenium. Проверьте этот пост.
Ниже приведены ожидаемые условия, которые можно использовать в явном ожидании
- alertIsPresent()
- elementSelectionStateToBe()
- elementToBeClickable()
- elementToBeSelected( )
- frameToBeAvaliableAndSwitchToIt()
- invisibilityOfTheElementLocated()
- invisibilityOfElementWithText()
- присутствияВсехЭлементов,Расположенных()
- присутствиеЭлементов,Расположенных()
- textToBePresentInElementLocated()
- textToBePresentInElementLocated()
- textToBePresentInElementValue()
- titleIs()
- titleContains()
- visibilityOf()
- visibilityOfAllElements( )
- visibilityOfAllElementsLocatedBy()
- visibilityOfElementLocated()
Синтаксис:
123 | //WebDriverWait wait = new WebDriverWait(WebDriverRefrence,TimeOut);WebDriverWait wait = new WebDriverWait (драйвер, 20);wait.until(ExpectedConditions.VisibilityofElementLocated(By.xpath(“”//button[@value='Сохранить изменения'] “”))); |
Тестовый сценарий с объяснением:
Найдите пример сценария (с использованием Java), упомянутый ниже. Выполните его, чтобы увидеть функциональность.
123456789101112131415161718192021222324252627 | ожидания пакета; импорт java.util.concurrent.TimeUnit; импорт org.openqa.selenium.By; импорт org.openqa.selenium.WebDriver; импорт org.openqa.selenium.WebElement; импорт org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.support.ui.ExpectedConditions;import org.openqa.selenium.support.ui.WebDriverWait;public class ExplicitWaits {public static void main(String[] args) {//Чтобы создать новый экземпляр Firefox DriverWebDriver driver = new FirefoxDriver();//Для открытия веб-сайта “Материалы по тестированию программного обеспечения” driver.get(“https://www.softwaretestingmaterial.com”);//Для максимального расширения браузера windowdriver.manage().window( ).maximize();//Это ждет до 15 секунд, прежде чем выдать TimeoutException или, если он найдет, элемент вернет его через 0–15 секундWebDriverWait wait = new WebDriverWait (driver, 15);//Название веб-страницы: ” Материалы для тестирования программного обеспечения – сайт для тестировщиков программного обеспечения “wait.until(ExpectedConditions.titleIs(“Материалы для тестирования программного обеспечения – сайт для тестировщиков программного обеспечения”));//Если вышеуказанное условие выполнено, тогда браузер будет закрыт //Чтобы закрыть browserdriver.close (); //Измените заголовок «Материалы для тестирования программного обеспечения – сайт для тестировщиков программного обеспечения» на «xyz» в скрипте и попробуйте //Вы столкнетесь исключение – Исключение в потоке “main” org.openqa.selenium.TimeoutException: истекло время ожидания через 20 секунд, пока заголовок не станет “Материалы для тестирования программного обеспечения – сайт для тестирования программного обеспечения”. Текущее название: “xyz”}} |
Период объединения по умолчанию для неявного и явного ожидания составляет 250 мс. Здесь, в режиме ожидания Fluent, мы можем изменить период объединения по умолчанию в соответствии с нашими требованиями. Кроме того, мы можем игнорировать любые исключения при объединении таких элементов, как исключение «Нет такого элемента».
Если вы не являетесь постоянным читателем моего блога, я настоятельно рекомендую вам подписаться на бесплатную рассылку новостей по электронной почте, используя ссылку ниже.
TAG: qa