Skip to content

ArtemKhov/AutomationSeleniumProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Шаблон под автоматизированные тесты

Этот проект содержит автотесты на Python + Selenium + pytest для проверки ключевых пользовательских сценариев на сайте litres.ru:

  • покупка книги из разных жанров;
  • удаление книги из корзины;
  • поиск книги по названию.

Тесты используют паттерн Page Object (папка pages) и вспомогательный базовый класс Base (папка base).


Технологии

  • Python 3.11+ (рекомендуется виртуальное окружение)
  • Selenium WebDriver
  • pytest
  • webdriver-manager
  • Faker
  • python-dotenv
  • Black (для автоформатирования кода по PEP8)

Все зависимости перечислены в файле requirements.txt.


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

  • base/ – базовый класс Base с общими методами (проверки, скриншоты и т.п.).
  • pages/ – Page Object’ы:
    • login_page.py – авторизация пользователя;
    • main_page.py – главная страница (поиск, переход в каталог жанров);
    • catalog_page.py – каталог жанров и выбор книги;
    • cart_page.py – корзина и переход к покупке;
    • payment_page.py – заполнение данных оплаты (фейковые данные через Faker);
    • components/filters.py – отдельный компонент для работы с фильтрами на сайте.
  • tests/ – pytest‑тесты:
    • test_buy_product.py – сценарии покупки книги из разных жанров;
    • test_delete_book.py – тест удаления книги из корзины;
    • test_search_book.py – тест поиска книги;
    • conftest.py – общие фикстуры.
  • screen/ – папка для сохранения скриншотов.

Подготовка окружения

  1. Клонировать репозиторий (или скопировать проект):
git clone <URL_РЕПОЗИТОРИЯ>
cd AutomationSeleniumProject
  1. Создать виртуальное окружение (опционально, но рекомендуется):
python -m venv .venv
.\.venv\Scripts\activate  # Windows
  1. Установить зависимости:
python -m pip install --upgrade pip
pip install -r requirements.txt

Настройка переменных окружения

Для тестов авторизации используются логин и пароль, читаемые из переменных окружения (через python-dotenv):

  • LOGIN – логин пользователя litres.ru;
  • PASSWORD – пароль.

Создайте файл .env в корне проекта (рядом с requirements.txt) и добавьте в него:

LOGIN=ваш_логин
PASSWORD=ваш_пароль

Файл .env уже должен быть проигнорирован системой контроля версий (см. .gitignore).


Запуск тестов

Запуск всех тестов:

pytest

Запуск только тестов покупки:

pytest tests/test_buy_product.py

Запуск теста поиска книги:

pytest tests/test_search_book.py

Тесты используют webdriver_manager, поэтому драйвер Chrome будет автоматически скачан и обновлён при необходимости. В опциях браузера уже добавлены флаги --disable-notifications и --disable-popup-blocking.


Скриншоты

Метод get_screenshot базового класса Base сохраняет скриншоты в папку screen/ с именем вида:

screenshot YYYY.MM.DD-HH.MM.SS.png

Путь к директории для скриншотов жёстко прописан в коде (Base.get_screenshot). При переносе проекта при необходимости скорректируйте путь.


About

Automation Selenium Project Template

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages