
Одной из самых важных задач в автоматизации тестирования веб-приложений с использованием Selenium WebDriver является возможность поиска и взаимодействия с веб-элементами. Здесь мы разберем, как использовать различные методы для поиска этих элементов на веб-странице в Selenium.
Selenium предоставляет множество методов для поиска элементов на веб-странице. Ниже перечислены некоторые из них:
By.ID: Поиск элемента по его идентификатору (ID).By.NAME: Поиск элементов по их атрибуту name.By.CLASS_NAME: Поиск элемента по его классу.By.TAG_NAME: Поиск элемента по его тегу.By.CSS_SELECTOR: Поиск элемента с использованием селекторов CSS.By.XPATH: Поиск элемента с использованием XPath выражений.search_box = driver.find_element(By.ID, "input")search_box = driver.find_element(By.NAME, "q")element = driver.find_element(By.CLASS_NAME, "some-class")header = driver.find_element(By.TAG_NAME, "h1")element = driver.find_element(By.CSS_SELECTOR, ".class-name > div > span")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. Начиная от простых действий, таких как клик по кнопке, до более сложных — выбора опций из выпадающих списков и взаимодействия с чекбоксами и радио-кнопками.
Работа с веб-элементами является фундаментом автоматизации веб-тестирования. Понимание, как искать элементы, как с ними взаимодействовать, как проверять их состояния, позволит вам создавать надежные и масштабируемые автоматические тесты.
Содержание: