Что такое Selenium?

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

Основные компоненты Selenium

  • Selenium WebDriver — API для управления браузером
  • Selenium IDE — плагин для записи и воспроизведения тестов
  • Selenium Grid — распределённое выполнение тестов
  • Selenium RC — устаревший компонент (Remote Control)

Установка и настройка

Установка Selenium для Python:

1# Установка через pip
2pip install selenium
3
4# Установка через poetry
5poetry add selenium

Пример базового теста:

 1from selenium import webdriver
 2from selenium.webdriver.common.by import By
 3from selenium.webdriver.support.ui import WebDriverWait
 4from selenium.webdriver.support import expected_conditions as EC
 5
 6# Инициализация драйвера
 7driver = webdriver.Chrome()
 8
 9try:
10    # Переход на страницу
11    driver.get("https://example.com")
12    
13    # Поиск элемента и клик
14    button = WebDriverWait(driver, 10).until(
15        EC.element_to_be_clickable((By.ID, "submit-btn"))
16    )
17    button.click()
18    
19    # Проверка результата
20    assert "Success" in driver.page_source
21    
22finally:
23    driver.quit()

Поддерживаемые браузеры

  • Chrome и Chromium
  • Firefox
  • Safari
  • Microsoft Edge
  • Internet Explorer (устаревший)

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

  • Поддержка множества браузеров и платформ
  • Интеграция с популярными языками программирования
  • Возможность параллельного выполнения тестов
  • Активное сообщество и обширная документация
  • Бесплатность и открытый исходный код

Рекомендации по использованию

  • Используй явные ожидания вместо Thread.sleep()
  • Применяй паттерн Page Object Model для структурирования тестов
  • Настрой Selenium Grid для параллельного выполнения
  • Регулярно обновляй драйверы браузеров

FAQ

Можно ли использовать Selenium для мобильного тестирования?

Selenium предназначен для веб-тестирования. Для мобильных приложений лучше использовать Appium, который основан на протоколе WebDriver.

Как обрабатывать динамические элементы?

Используй WebDriverWait с expected_conditions для ожидания появления или изменения элементов на странице.