Computer Science

Учебник Автоматизация тестирования на Selenium для начинающих

15 уроков · 5 разделов · бесплатно, без регистрации

Автоматизация браузерных тестов на Selenium и Python: от первого клика до Page Object и запуска в CI.

Курс «Автоматизация тестирования на Selenium» состоит из 5 разделов и 15 уроков: Начало работы, Локаторы и ожидания, Взаимодействие со страницей, Архитектура тестов и Запуск и CI. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.

Программа курса

  1. 1 Начало работы

    1. Зачем нужна автоматизация UI

      Что автоматизация тестов даёт и чего не даёт, почему регрессия — главный кандидат, сколько стоит поддержка автотестов и когда автоматизация вредна.

    2. Selenium WebDriver: установка и устройство

      Как Selenium управляет браузером через W3C WebDriver Protocol, установка selenium 4.x, встроенный Selenium Manager вместо ручной загрузки chromedriver.

    3. Первый тест: открыть страницу и проверить заголовок

      Минимальный рабочий тест на Selenium и Python: создание драйвера, get(), проверка title через assert и обязательный quit() в try/finally.

  2. 2 Локаторы и ожидания

    1. Локаторы: id, css, xpath

      Восемь стратегий поиска элементов в Selenium: чем хорош By.ID, когда CSS-селектор побеждает XPath и как писать локаторы, которые переживут редизайн.

    2. Явные и неявные ожидания

      Почему UI-тесты мигают, чем плох implicit wait и time.sleep и как правильно ждать элемент через WebDriverWait и expected_conditions в Selenium.

    3. Работа с элементами

      find_element и find_elements, чтение текста и атрибутов, проверка видимости и доступности, а также борьба с NoSuchElementException и StaleElementReferenceException.

  3. 3 Взаимодействие со страницей

    1. Формы: ввод, клики, выпадающие списки

      send_keys и clear, ElementClickInterceptedException и перекрытые кнопки, класс Select для тегов select, чекбоксы и радиокнопки — как правильно работать с формами в Selenium.

    2. Фреймы, вкладки и алерты

      switch_to.frame и возврат в default_content, работа с несколькими вкладками через window_handles, обработка нативных alert, confirm и prompt в Selenium.

    3. Скриншоты и отладка падений

      Скриншот при падении теста как обязательная практика: save_screenshot, page_source, логи консоли, автоматические артефакты через pytest-хук и быстрый разбор падений в CI.

  4. 4 Архитектура тестов

    1. Page Object Model

      Page Object Model в Selenium на Python: почему локаторы внутри тестов убивают проект, как описать страницу классом и переписать тест на язык пользователя.

    2. pytest и фикстуры

      Фикстуры pytest для Selenium: driver с setup и teardown через yield, scope фикстур, conftest.py, маркеры и скриншот при падении. Почему фикстура лучше setUp.

    3. Параметризация и data-driven тесты

      pytest.mark.parametrize в Selenium-тестах: как проверить форму на наборе валидных и невалидных значений, вынести данные из кода и получить читаемый отчёт.

  5. 5 Запуск и CI

    1. Headless-режим и запуск в CI

      Как запустить Selenium без графики: --headless=new, размер окна, Docker и --no-sandbox, пайплайн GitHub Actions и почему в CI тесты падают чаще.

    2. Selenium Grid и параллельный запуск

      Selenium Grid 4: hub и узлы в docker-compose, Remote WebDriver, параллельный прогон через pytest-xdist и требования к тестам — независимость и свои данные.

    3. Отчёты и анализ падений

      Allure для Selenium: шаги, вложения и скриншоты падений, разница между failed и broken, откуда берутся флаки-тесты и почему retry — лечение симптома.