Одной из самых важных задач в автоматизации тестирования веб-приложений с использованием 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. Начиная от простых действий, таких как клик по кнопке, до более сложных — выбора опций из выпадающих списков и взаимодействия с чекбоксами и радио-кнопками.
Работа с веб-элементами является фундаментом автоматизации веб-тестирования. Понимание, как искать элементы, как с ними взаимодействовать, как проверять их состояния, позволит вам создавать надежные и масштабируемые автоматические тесты.
Содержание: