2026-02-14 01:35:11 +03:00
2026-02-14 01:35:11 +03:00
2026-02-14 01:35:11 +03:00
2026-02-14 01:35:11 +03:00
2026-02-14 01:35:11 +03:00
2026-02-14 01:35:11 +03:00
2026-02-14 01:35:11 +03:00

OTUS Selenium Homework 1

Цель проекта

Автоматизировать 3 UI-сценария на https://otus.ru с использованием Selenium WebDriver 4+, JUnit 5, Guice DI, listeners, Stream API, Jsoup и обязательных проверок качества (Checkstyle + SpotBugs).

Стек технологий

  • Java 21
  • Maven
  • Selenium 4.38.0
  • WebDriverManager 6.3.3
  • JUnit 5
  • Guice
  • Jsoup
  • Checkstyle
  • SpotBugs

Реализованные сценарии

  1. Поиск курса по имени.

    • Открытие каталога https://otus.ru/catalog/courses
    • Поиск курса по имени через Stream API
    • Клик по плитке курса
    • Проверка заголовка открытого курса
  2. Самые ранние/поздние курсы по дате старта.

    • Открытие каталога https://otus.ru/catalog/courses
    • Поиск ранних и поздних курсов через Stream API + reduce
    • При совпадении дат проверяются все курсы с этой датой
    • Проверка названия и даты старта на странице курса через Jsoup
  3. Случайная категория с главной страницы.

    • Открытие https://otus.ru
    • Открытие меню «Обучение»
    • Выбор случайной категории
    • Проверка, что открыта корректная категория

Архитектура

  • 2-уровневый тест-дизайн: tests + page objects
  • DI через Guice для тестов и страниц
  • JUnit 5 Extension (GuiceExtension), без базового класса-теста
  • Фабрика драйвера:
    • DriverFactory (интерфейс)
    • ChromeDriverFactory (реализация)
    • WebDriverProvider (жизненный цикл драйвера + декоратор listener)
  • Подсветка через listener:
    • Подсветка ставится в beforeClick
    • Снимается в afterClick
    • Стиль элемента возвращается в исходное состояние

Структура проекта

  • src/main/java/ru/kovbasa/config — DI-конфигурация
  • src/main/java/ru/kovbasa/driver — фабрика и провайдер WebDriver
  • src/main/java/ru/kovbasa/listeners — listener подсветки
  • src/main/java/ru/kovbasa/pages — Page Object классы
  • src/main/java/ru/kovbasa/elements — типизированные UI-элементы
  • src/test/java/ru/kovbasa/config — JUnit extension для DI
  • src/test/java/ru/kovbasa/tests — автотесты

Требования к окружению

  1. Установлен JDK 21 (доступен в PATH)
  2. Установлен Google Chrome
  3. Установлен Maven 3.9+
  4. Есть доступ в интернет и к otus.ru (тесты запускаются на живом сайте)

Запуск

1. Запуск только тестов

mvn test

2. Полная проверка (тесты + Checkstyle + SpotBugs)

mvn verify

3. Запуск отдельного тестового класса

mvn "-Dtest=ru.kovbasa.tests.CourseSearchTest" test

Параметры запуска

Пробрасываются через Maven Surefire:

  • base.url (по умолчанию https://otus.ru)
  • course.name (по умолчанию Python Developer)

Пример переопределения:

mvn "-Dcourse.name=Python Developer" test

Quality Gates

  • Checkstyle и SpotBugs выполняется в фазе verify

Примечания

  • Тесты зависят от текущей верстки/контента otus.ru.
Description
No description provided
Readme 95 KiB
Languages
Java 100%