Обработка вызовов AJAX с помощью Selenium
Обработка вызовов AJAX — одна из распространенных проблем при использовании Selenium WebDriver. Мы не знали бы, когда завершится вызов AJAX и страница будет обновлена. В этом посте мы увидим, как обрабатывать вызовы AJAX с помощью Selenium.
AJAX означает асинхронный JavaScript и XML. AJAX позволяет веб-странице получать небольшие объемы данных с сервера без перезагрузки всей страницы. AJAX отправляет HTTP-запросы от клиента к серверу, а затем обрабатывает ответ сервера без перезагрузки всей страницы. Для обработки элементов управления AJAX команды ожидания могут не работать. Это просто потому, что фактическая страница не будет обновляться.
Когда вы нажимаете кнопку отправки, необходимая информация может появиться на веб-странице без обновления браузера. Иногда он может загружаться за секунду, а иногда может занять больше времени. Мы не контролируем время загрузки. Лучший подход для обработки подобных ситуаций в селене — использовать динамические ожидания (т. е. WebDriverWait в сочетании с ExpectedCondition)
Некоторые из доступных методов:
Подробные сведения см. в этом посте. пояснение к WebDeriverWait
В предыдущем посте мы обсуждали условие titleIs(). Давайте подробно рассмотрим некоторые другие условия.
- titleIs() — ожидаемое условие ожидает страницы с определенным заголовком.
1 wait.until(ExpectedConditions.titleIs(“Сделка дня”)); - elementToBeClickable() – Ожидаемое условие ожидает, пока элемент станет кликабельным, т. е. он должен присутствовать/отображаться/видимым на экране. а также включен.
1 wait.until(ExpectedConditions.elementToBeClickable(By .xpath(“xpath”))); - alertIsPresent() – Ожидаемое условие ожидает появления окна с предупреждением.
1 wait.until(ExpectedConditions.alertIsPresent()) !=null); - textToBePresentInElement() — Ожидаемое условие ожидает элемента, имеющего определенный шаблон строки.< br>
1 wait.until( ExpectedConditions.textToBePresentInElement(By.id(“title'”), “текст, который нужно найти”));
Если вы не являетесь постоянным читателем SoftwareTestingMaterial.com, я настоятельно рекомендую вам чтобы зарегистрироваться бесплатный информационный бюллетень по электронной почте, используя ссылку ниже.
TAG: qa