СИНХРОНИЗАЦИЯ В 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”)))

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

  • text_to_be_present_in_element_value
  • text_to_be_present_in_element
  • element_to_be_selected
  • staleness_of
  • element_to_be_clickable
  • invisibility_of_element_located
  • frame_to_be_available_and_switch_to_it
  • element_located_to_be_selected
  • alert_is_present
  • element_located_selection_state_to_be
  • title_contains
  • visibility_of_element_located
  • presence_of_element_located
  • title_is
  • visibility_of
  • element_selection_state_to_be
  • presence_of_all_elements_located
  • element_located_to_be_selected< /ul>

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

    1234567891011121314151617

    из селена (executable_path=”C:\chromedriver.exe”)# получить метод для запуска applicationdriver.get(“https://www.softwaretestingmaterial.com/”)# неявное ожидание установлено на 2 секунды значение ожидания равно 2 секундам. table>

    Поэтому явное ожидание сложно с точки зрения реализации. Однако это не снижает скорость выполнения и применяется к конкретному элементу по нашему выбору.

    В следующей статье мы изучим команды Webelement в Selenium Python.

    < р> 

    TAG: qa

    От QA genius

    Adblock
    detector