СИНХРОНИЗАЦИЯ В SELENIUM PYTHON

В предыдущих статьях по Selenium Python Tutorial мы рассмотрели «JavaScript Executor в Selenium Python». В этом руководстве мы изучим Синхронизацию в Selenium Python.

При работе с инструментами автоматизации, такими как Selenium, Protractor и т. д., мы обычно сталкиваемся с ситуациями, когда для загрузка страницы и ее веб-элементов. Таким образом, это приводит к ситуации, когда существуют проблемы с синхронизацией между элементами на странице и действиями, выполняемыми Selenium.

Проблемы с синхронизацией часто приводят к сбоям в идентификации элементов из-за отсутствия этого элемента в DOM, что приводит к исключению ElementNotVisibleException. Чтобы закрыть эти лазейки, в Selenium придумали концепцию ожидания, которая замедляет процесс идентификации элементов и выполнения над ними задач.

Типы ожиданий веб-драйвера перечислены ниже:< h3>Неявное ожидание в Selenium

Неявное ожидание — это динамическое ожидание, применимое к каждому элементу в нашем тестовом примере. Он динамичен по своей природе, потому что если мы добавим неявное ожидание в две секунды и элемент будет доступен в первую секунду, то нам не нужно ждать все две секунды. Как только элемент становится доступным в DOM, элемент управления переходит к следующему шагу выполнения теста.

Неявное ожидание можно рассматривать как глобальное ожидание, поскольку оно в основном применяется к уровню набора тестов. Исключения тайм-аута будут предоставлены, если элемент недоступен после истечения неявного времени ожидания. Время неявного ожидания по умолчанию равно 0.

Синтаксис:

implicitly_wait (2), время в аргументе метода указано в секундах.

Реализация кода с неявным ожиданием.

123456789

from selenium import webdriver# установка свойства для chromedriver.exedriver = webdriver.Chrome (executable_path=”C:\chromedriver.exe”)# get метод для запуска applicationdriver.get(“https://www.softwaretestingmaterial.com/”)# неявное ожидание установлено на 2 секундыdriver.implicitly_wait(2)#чтобы закрыть браузерdriver.close()

Таким образом, неявное ожидание легко с точки зрения реализации. Однако это замедляет скорость выполнения и не улавливает проблемы с производительностью в приложении. Неявное ожидание продолжает опрос до фиксированного времени, указанного пользователем, которое остается применимым до тех пор, пока сеанс драйвера не станет активным.

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

Явное ожидание также является динамическим ожиданием, применимым к элементу, к которому оно применяется. Он динамичен по своей природе, потому что если мы добавим явное ожидание в три секунды и условие, заданное для элемента, будет выполнено в первую секунду, нам не нужно останавливать выполнение на все три секунды, прежде чем продолжить код.

В явном ожидании нам нужно установить некоторые ожидаемые условия, которым должен удовлетворять элемент. Если критерии не выполняются в течение времени, создается исключение тайм-аута. Класс WebDriverWait и ExpectedCondition используются для создания явного ожидания. WebDriverWait автоматически вызывает ExpectedCondition с интервалом в 500 мс, пока условие не станет истинным.

Синтаксис:

< tr class=crayon-row>

12

wt = WebDriverWait(driver, 2)wt.until (expected_conditions.element_to_be_clickable((By.ID, “txt-bx”)))

Некоторые из распространенных ожидаемых условий перечислены ниже: