Включите исполнение JavaScript в браузере, чтобы запустить приложение.
20 мая 2025

Что такое Selenium?

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

Что такое Selenium и для чего он нужен

Selenium — это инструмент автоматизации тестирования веб-приложений с открытым исходным кодом. Продукт позволяет воспроизводить действия пользователей: регистрацию, клики на кнопки, поиск и переходы по страницам, заполнение форм и так далее. С помощью Selenium можно проверять работу приложения в разных браузерах и операционных системах, выполнять функциональное и регрессионное (проверка корректности работы после внесения изменений в код) тестирование, а также тестирование производительности (например, измерение времени загрузки страницы). Благодаря поддержке интеграции с другими инструментами и несколькими языками программирования, продукт пользуется популярностью у тестировщиков.

Основные компоненты Selenium: IDE, WebDriver, Grid, RC, Server

  • Selenium IDE — это плагин (расширение) для браузеров Google Chrome, Microsoft Edge и Mozilla Firefox, который записывает действия пользователя и генерирует код для WebDriver (RC). Сгенерированные тесты можно сохранять, чтобы использовать повторно самостоятельно или внутри других тестов, и изменять: добавлять условия или проверки, а также экспортировать. Инструмент имеет простой интерфейс, подходит для создания и простых, и сложных сценариев.
  • Selenium WebDriver — это библиотека для локального и удаленного управления браузерами, ключевой компонент проекта. WebDriver содержит набор драйверов для браузеров и библиотеки на нескольких языках программирования: Java, Python, C#, Ruby и других. Компонент выполняет тестовые сценарии, воспроизводя действия пользователей, например поиск на сайте и заполнение форм.
  • Selenium RC — это инструмент, который использовался вместо WebDriver до его появления. Сейчас компонент доступен, но практически не используется в связи с устаревшей функциональностью и отсутствием обновлений.
  • Selenium Server — это сервер для удаленного управления браузерами.
  • Selenium Grid — это комплекс Selenium-серверов, позволяющий запускать тесты параллельно на множестве компьютеров в разных браузерах. Так можно ускорить тестирование продукта. Кроме того, поддерживается кроссплатформенность: тесты могут запускаться в разных операционных системах (ОС). Grid состоит из нескольких компонентов: хаба — выделенного сервера, управляющего распределением тестов, и нод — других серверов, выполняющих тестирование в определенных условиях. Среди условий могут быть браузер и его версия, ОС, тип архитектуры процессора и т. д. После запроса клиента хаб выбирает подходящую ноду, направляет запрос на нее, после чего выполняется тест. 

Принцип работы Selenium

Работу инструмента можно разделить на следующие шаги:

  1. Тестировщик на одном из доступных языков программирования описывает тестовый сценарий.
  2. WebDriver запускает браузер с помощью соответствующего драйвера, открывает страницу и выполняет описанный сценарий. 
  3. Selenium выводит результаты.

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

Рассмотрим пример проверки авторизации и регистрации на сайте на языке Python:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time


# Инициализация WebDriver
driver = webdriver.Chrome()


try:
    # Открытие сайта
    driver.get("https://example.com")
   
    # Поиск кнопки входа и клик по ней
    login_button = driver.find_element(By.ID, "login-btn")
    login_button.click()
   
    # Ввод логина и пароля
    username_field = driver.find_element(By.ID, "username")
    username_field.send_keys("test_user")
   
    password_field = driver.find_element(By.ID, "password")
    password_field.send_keys("secure_password")
    password_field.send_keys(Keys.RETURN)
   
    # Ожидание загрузки
    time.sleep(3)
   
    # Поиск кнопки регистрации и клик по ней
    register_button = driver.find_element(By.ID, "register-btn")
    register_button.click()
   
    # Заполнение формы регистрации
    driver.find_element(By.ID, "reg-username").send_keys("new_user")
    driver.find_element(By.ID, "reg-email").send_keys("new_user@example.com")
    driver.find_element(By.ID, "reg-password").send_keys("secure_password", Keys.RETURN)
   
    # Проверка успешности регистрации
    time.sleep(2)
    welcome_message = driver.find_element(By.ID, "welcome-message")
    assert "Добро пожаловать!" in welcome_message.text, "Ошибка при регистрации"
   
    print("Тестирование выполнено успешно.")
   
finally:
    # Закрытие браузера
    driver.quit()
py

Преимущества и ограничения Selenium

Преимущества:

  • доступность. Продукт имеет открытый исходный код и предоставляется бесплатно, поэтому его может использовать каждый программист. Сообщество активно занимается развитием проекта: улучшает документацию и функциональность, разрабатывает новые функции;
  • возможности интеграции. Selenium совместим с облачными платформами, фреймворками для тестирования, системами CI/CD;
  • кроссплатформенность и кроссбраузерность. Инструмент поддерживает наиболее популярные браузеры и операционные системы, благодаря чему тесты можно запускать в максимально реалистичных условиях;
  • поддержка распространенных языков программирования. Продукт позволяет работать на Java, Python, C#, Ruby, JavaScript, Kotlin.

Ограничения:

  • узкая сфера применения. Тестировать можно только веб-приложения — для мобильных и десктопных инструмент не подходит;
  • необходимы навыки программирования. Несмотря на возможности IDE, для полноценной работы с Selenium пользователю нужно уметь программировать на достаточно высоком уровне;
  • трудности в настройке параметров. Перед началом использования инструмента программисту нужно настроить среду, при этом не допустив ошибок (иначе можно столкнуться с некорректными результатами).

Итоги

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