Урок 12 Python — Page Object Pattern в Selenium WebDriver

23 подписчика

12+
12+

5 просмотров

16 дней назад

ПожаловатьсяНарушение авторских прав

23 подписчика

12+
12+

5 просмотров

16 дней назад

ПожаловатьсяНарушение авторских прав
12+
12+

5 просмотров

16 дней назад

Практический разбор паттерна Page Object: от простого класса страницы до продвинутой реализации с декораторами, кастомными локаторами и таймаутами — строим читаемый и переиспользуемый фреймворк автоматизации. 📌 СОДЕРЖАНИЕ 00:00 — Вступление: урок №12, переходим к архитектуре тестового фреймворка 01:00 — Обзор плана: два варианта Page Object — простой и с декораторами 02:30 — Повторение: зачем нужен Page Object, проблемы «голого» Selenium-кода 04:00 — Простой вариант: класс страницы, конструктор принимает driver, методы инкапсулируют локаторы 07:30 — Пример: LoginPage с методами open(), enter_phone(), enter_password(), submit(), get_error() 11:00 — Демонстрация работы: тест использует только методы страницы, не зная о локаторах 13:30 — Преимущества простого подхода: читаемость, единственное место изменения при смене локатора 16:00 — Ограничения: дублирование ожиданий, нет единого способа задать таймаут для элемента 18:30 — Продвинутый вариант: Page Object с декораторами и классом-локатором 21:00 — Класс Element: хранит локатор (By, value) и таймаут ожидания, реализует дескриптор 24:30 — Протокол дескриптора Python: _get_ и _set_, как атрибуты класса становятся «умными» 28:00 — Реализация _get_: внутри вызывает WebDriverWait с нужным таймаутом, возвращает WebElement 31:00 — Реализация _set_: автоматически очищает поле и вводит значение через send_keys 34:30 — LoginPage с декораторами: phone = Element(By.ID, "phone", timeout=5) — одна строка вместо метода 37:00 — Демонстрация: обращение к page.phone возвращает элемент с ожиданием, page.phone = "123" вводит текст 40:00 — Сравнение двух подходов: когда выбирать простой, когда сложный 43:00 — Структура папок фреймворка: pages/, tests/, conftest.py, fixtures для driver 46:30 — Базовый класс BasePage: общие методы open(), get_title(), scroll_to() — DRY в архитектуре 49:00 — Пример наследования: LoginPage(BasePage) и RegisterPage(BasePage) — переиспользование без копипаста 51:30 — Интеграция с pytest: фикстуры, параметризация, conftest на уровне пакета 53:00 — Итог: Page Object как математическое отображение DOM → классы, тесты читаются как сценарии 54:30 — Анонс урока №13: фикстуры pytest, setup/teardown, scope и жизненный цикл driver 🔗 РЕСУРСЫ Репозиторий курса на GitHub: https://github.com/KirillBelovTest/QA Сайт-песочница «Дыши свободно»: https://bf.today Документация Selenium — Page Object: https://www.selenium.dev/documentation/test_practices/encouraged/page_object_models/ Дескрипторы Python (официальная документация): https://docs.python.org/3/howto/descriptor.html pytest Fixtures: https://docs.pytest.org/en/stable/reference/fixtures.html 💬 СООБЩЕСТВО ━ Telegram-канал / чат курса QA4Life: https://t.me/QA4Life Чат по курсу в ТГ: https://t.me/qa_mistakes/1736/1881 👍 Ставь лайк, если полезно | 🔔 Подпишись на новые уроки #Selenium #WebDriver #PageObject #QA4Life #автоматизация #тестирование #Python #декораторы #дескрипторы #pytest #фреймворк #BasePage #UIтестирование #QAengineer

Название:

Урок 12 Python — Page Object Pattern в Selenium WebDriver

Категория:

Разное