Этот проект содержит автотесты на 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/– папка для сохранения скриншотов.
- Клонировать репозиторий (или скопировать проект):
git clone <URL_РЕПОЗИТОРИЯ>
cd AutomationSeleniumProject- Создать виртуальное окружение (опционально, но рекомендуется):
python -m venv .venv
.\.venv\Scripts\activate # Windows- Установить зависимости:
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). При переносе проекта при необходимости скорректируйте путь.