поиск элементов на веб-странице

Основные методы поиска элементов на веб-странице в Selenium

Одной из самых важных задач в автоматизации тестирования веб-приложений с использованием Selenium WebDriver является возможность поиска и взаимодействия с веб-элементами. Здесь мы разберем, как использовать различные методы для поиска этих элементов на веб-странице в Selenium.

Методы поиска элементов

Selenium предоставляет множество методов для поиска элементов на веб-странице. Ниже перечислены некоторые из них:

  • By.ID: Поиск элемента по его идентификатору (ID).
  • By.NAME: Поиск элементов по их атрибуту name.
  • By.CLASS_NAME: Поиск элемента по его классу.
  • By.TAG_NAME: Поиск элемента по его тегу.
  • By.CSS_SELECTOR: Поиск элемента с использованием селекторов CSS.
  • By.XPATH: Поиск элемента с использованием XPath выражений.

Примеры использования методов

  • By.ID:
search_box = driver.find_element(By.ID, "input")
  • By.NAME:
search_box = driver.find_element(By.NAME, "q")
  • By.CLASS_NAME:
element = driver.find_element(By.CLASS_NAME, "some-class")
  • By.TAG_NAME:
header = driver.find_element(By.TAG_NAME, "h1")
  • By.CSS_SELECTOR:
element = driver.find_element(By.CSS_SELECTOR, ".class-name > div > span")
  • By.XPATH:
element = driver.find_element(By.XPATH, "//div[@id='some-id']/span[1]")

Ввод текста, выбор опций

Selenium WebDriver предлагает разнообразные методы для взаимодействия с элементами формы, такими как текстовые поля, чекбоксы, радио-кнопки и выпадающие списки.

Ввод текста в текстовые поля: send_keys()
Метод send_keys() позволяет вводить текст в текстовые поля.

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://www.google.com')

search_box = driver.find_element("css selector", "input[name='q']")
search_box.send_keys('Selenium')

Очистка текстовых полей: clear()
Если необходимо очистить текстовое поле перед вводом нового текста, используется метод clear().

search_box.clear()

Выбор опций из выпадающего списка: Select
Для работы с выпадающими списками в Selenium есть специальный класс Select.

from selenium.webdriver.support.ui import Select

select = Select(driver.find_element("id", "dropdown"))
select.select_by_index(1)

Отметка и снятие отметки с чекбокса или радио-кнопки: click()
Метод click() может использоваться для отметки и снятия отметки с чекбоксов и радио-кнопок.

checkbox = driver.find_element("id", "checkbox_id")
checkbox.click()

Нажатие кнопки для отправки формы: submit()

search_box.submit()

Работа с кнопками, списками и другими элементами

Кнопки: клик и отправка формы
Как уже упоминалось, метод click() можно использовать для клика по кнопкам. Это может быть как обычная кнопка, так и кнопка отправки формы.

# Клик по обычной кнопке
button = driver.find_element("id", "button_id")
button.click()

# Клик по кнопке для отправки формы
submit_button = driver.find_element("id", "submit_button_id")
submit_button.click()

Выбор элементов из выпадающих списков
Мы уже рассмотрели класс Select для работы с выпадающими списками, но его можно использовать и для других действий, например, для выбора всех опций.

from selenium.webdriver.support.ui import Select

select = Select(driver.find_element("id", "dropdown"))
select.select_by_visible_text('Option 1')

Заключение

Мы провели экскурс по основным типам веб-элементов и методам их обработки в Selenium WebDriver. Начиная от простых действий, таких как клик по кнопке, до более сложных — выбора опций из выпадающих списков и взаимодействия с чекбоксами и радио-кнопками.

Работа с веб-элементами является фундаментом автоматизации веб-тестирования. Понимание, как искать элементы, как с ними взаимодействовать, как проверять их состояния, позволит вам создавать надежные и масштабируемые автоматические тесты.

Содержание: