Перейти к основному контенту
Tech Path Finder
КурсыИнтервьюКод-ревьюБлог
Tech Path Finder

Персонализированный путеводитель в IT. Квизы, мок-интервью, код ревью и аналитика прогресса.

@potapov_me

Платформа

  • Курсы
  • Прогресс
  • Мок-интервью
  • Код ревью
  • Живое ревью с ИИ
  • Тренажёр переговоров
  • Закладки

Контент

  • Блог
  • Главная
  • Обратная связь

Компания

  • О проекте
  • Тарифы
  • Условия использования
  • Конфиденциальность
  • Согласие на обработку данных
  • Cookie
  • Реквизиты

Аккаунт

  • Войти
  • Зарегистрироваться
  • Профиль

© 2026 Tech Path Finder. Все права защищены.

·ИП Потапов К.С.·Политика конфиденциальности·
Сделано с ❤️ в России

Частые вопросы о курсе «Playwright: автоматизация тестирования браузеров»

Состав курса, уровни, практика и способы проверки знаний.

Что входит в курс «Playwright: автоматизация тестирования браузеров»?

Курс включает 12 тем и 95 вопросов с разбором ответа. Начать можно с первой темы курса.

Для какого уровня рассчитан курс «Playwright: автоматизация тестирования браузеров»?

Маршрут охватывает уровни Junior, Middle. Темы расположены от основы к более сложным инженерным задачам, поэтому можно начать с подходящего места и не пропускать важные зависимости.

  1. Playwright: автоматизация тестирования браузеров
Python экосистема·12 тем·95 вопросов·уровень Junior, Middle

Playwright: автоматизация тестирования браузеров

Полный практический курс по Playwright — современному фреймворку для автоматизации браузеров. От установки и первых тестов до продвинутых паттернов: Page Object Model, перехват запросов, визуальное тестирование, эмуляция мобильных устройств, интеграция с CI/CD. Курс охватывает Python API Playwright и подходит для QA-инженеров и разработчиков, желающих освоить надёжное end-to-end тестирование веб-приложений.

Начать курс

Playwright: автоматизация браузера

E2E-тесты бросают не из-за сложности, а из-за флейков. Тест падает раз в двадцать прогонов, воспроизвести не выходит, в него добавляют sleep(2), потом sleep(5), а через месяц пайплайн запускают с галочкой «продолжить при ошибке». Playwright спроектирован вокруг этой проблемы: локатор вычисляется в момент действия, ожидание встроено в каждый шаг, а у любого падения есть трейс, который открывается и отматывается назад по кадрам.

Двенадцать тем на Python API. Начало — установка и первый тест, затем локаторы: поиск по роли, тексту и меткам вместо хрупких CSS-селекторов, цепочки и фильтры. Дальше формы во всём разнообразии (выпадающие списки, чекбоксы, загрузка файлов, drag-and-drop), навигация между страницами, вкладками и фреймами, разница между автоожиданием и явными ожиданиями — и почему второе нужно реже, чем кажется.

Затем то, что превращает набор скриптов в поддерживаемый набор тестов: фикстуры pytest и параметризация, перехват сетевых запросов с подменой ответов (тест на пустой список товаров без похода в базу), сохранение состояния авторизации, чтобы не логиниться в каждом тесте, визуальные снапшоты с порогами сравнения, эмуляция мобильных устройств, геолокации и touch-событий, Page Object Model.

Финал — эксплуатация: запуск в GitHub Actions и GitLab CI, headless-режим, параллельность и шардирование, HTML-отчёты, Trace Viewer и скринкасты для разбора падений, которые не воспроизводятся локально.

Нужен Python и базовое понимание HTML и DOM. Опыт с Selenium полезен, но не обязателен — местами даже мешает.

  1. Зачёт

    Доступен после всех тем (0 из 12)

  2. Экзамен

    Доступен после зачёта

18 / 18

Browser Context

Базовые концепции

Изолированная среда внутри браузера, аналог инкогнито-сессии. Каждый контекст имеет собственные cookies, localStorage и sessionStorage, не пересекающиеся с другими контекстами.

Пример

context = await browser.new_context() page = await context.new_page()

Связанные термины

Page

Базовые концепции

Основной объект для взаимодействия с веб-страницей. Представляет одну вкладку браузера и предоставляет методы для кликов, заполнения полей, навигации и получения данных.

Пример

page = await browser.new_page() await page.goto('https://example.com') await page.click('button')

Связанные термины

Browser

Базовые концепции

Объект, представляющий запущенный экземпляр браузера (Chromium, Firefox или WebKit). Управляет браузерным процессом и создаёт browser context'ы.

Пример

browser = await playwright.chromium.launch(headless=True) context = await browser.new_context()

Связанные термины

Auto-waiting

Локаторы и действия

Встроенный механизм Playwright, который автоматически проверяет, что элемент готов к взаимодействию (видим, стабилен, не перекрыт, активен) перед выполнением действия. Заменяет явные `time.sleep()` и ручные ожидания.

Пример

# Playwright сам ждёт, пока кнопка станет кликабельной await page.click('#submit')

Связанные термины

Locator

Локаторы и действия

Объект, описывающий способ поиска элемента на странице. Локаторы в Playwright строгие (strict) — если найдено несколько элементов, будет ошибка. Поддерживают цепочки и фильтрацию.

Пример

locator = page.get_by_role('button', name='Submit') locator = page.locator('.item').filter(has_text='important')

Связанные термины

Strict Mode

Локаторы и действия

Режим, при котором локатор вызывает ошибку, если находит более одного элемента. Гарантирует, что тест взаимодействует с конкретным элементом, а не с первым попавшимся.

Пример

# Ошибка, если найдено несколько .item await page.locator('.item').click() # Явное указание первого элемента await page.locator('.item').first.click()

Связанные термины

Fixture (pytest)

Структура тестов

Функция-фабрика в pytest, которая подготавливает окружение для теста и автоматически очищает его после. В Playwright фикстуры создают browser context и page для каждого теста.

Пример

@pytest.fixture def authenticated_page(page): page.goto('/login') page.fill('#user', 'admin') page.fill('#pass', 'secret') page.click('button[type=submit]') yield page

Связанные термины

Параметризация

Структура тестов

Механизм запуска одного теста с разными входными данными через `@pytest.mark.parametrize`. Позволяет покрыть множество сценариев без дублирования кода.

Пример

@pytest.mark.parametrize('url,status', [ ('/home', 200), ('/missing', 404), ('/error', 500), ]) def test_status_codes(page, url, status): page.goto(url) assert page.expect_response('**' + url).status == status

Связанные термины

Перехват запросов (Route Interception)

Сетевое взаимодействие

Механизм Playwright для перехвата и модификации сетевых запросов до их отправки. Позволяет заглушить API, подменить ответ, замедлить запрос или вернуть ошибку.

Пример

await page.route('**/api/users', lambda route: route.fulfill( status=200, json=[{'id': 1, 'name': 'Test User'}] ))

Связанные термины

Mock (заглушка)

Сетевое взаимодействие

Подставной объект или ответ, имитирующий поведение реальной зависимости. В Playwright моки используются для замены реальных API-запросов предсказуемыми ответами.

Пример

await page.route('**/api/products', lambda route: route.fulfill( json={'items': [], 'total': 0} ))

Связанные термины

Page Object Model

Паттерны и архитектура

Паттерн проектирования, при котором каждая страница (или компонент) приложения инкапсулируется в отдельный класс. Методы класса описывают действия пользователя, а тесты оперируют высокоуровневыми операциями вместо селекторов.

Пример

class LoginPage: def __init__(self, page): self.page = page self.username = page.locator('#username') self.password = page.locator('#password') self.login_btn = page.get_by_role('button', name='Войти') async def login(self, user, pwd): await self.username.fill(user) await self.password.fill(pwd) await self.login_btn.click()

Связанные термины

Snapshot Testing

CI/CD и отладка

Метод визуального тестирования, при котором скриншот страницы сравнивается с эталонным снимком. Любые визуальные изменения детектируются и требуют подтверждения или обновления эталона.

Пример

await expect(page).to_have_screenshot('homepage.png')

Связанные термины

Trace Viewer

CI/CD и отладка

Интерактивный инструмент для пошаговой отладки тестов. Запись (trace) содержит скриншоты, DOM-снимки, сетевые запросы и стектрейсы для каждого шага теста.

Пример

# В playwright.config.py context_options={'trace': 'on-first-retry'} # Запуск: npx playwright show-trace trace.zip

Связанные термины

HTML Report

CI/CD и отладка

Интерактивный отчёт о прогоне тестов в формате HTML. Содержит список тестов, статусы, скриншоты, видео и trace-файлы. Генерируется автоматически при запуске с флагом `--reporter=html`.

Пример

pytest --tracing=on # Отчёт: playwright-report/index.html

Связанные термины

Headless Mode

CI/CD и отладка

Режим запуска браузера без графического интерфейса. Используется в CI/CD-пайплайнах для экономии ресурсов и ускорения прогона тестов.

Пример

browser = await playwright.chromium.launch(headless=True)

Связанные термины

Storage State

Сетевое взаимодействие

Сериализованное состояние аутентификации (cookies, localStorage, sessionStorage). Позволяет сохранить сессию после логина и восстановить её в других тестах без повторного входа.

Пример

# Сохранение await context.storage_state(path='auth.json') # Восстановление context = await browser.new_context(storage_state='auth.json')

Связанные термины

Эмуляция устройств

Паттерны и архитектура

Возможность Playwright имитировать конкретное устройство (iPhone, iPad, Android) с правильным viewport, user-agent, touch events и настройками браузера.

Пример

context = await browser.new_context( **playwright.devices['iPhone 13'] )

Связанные термины

Screenshot (скриншот)

CI/CD и отладка

Снимок страницы или отдельного элемента в формате PNG или JPEG. Используется для визуальной верификации и отладки упавших тестов.

Пример

await page.screenshot(path='screenshot.png') await locator.screenshot(path='button.png')

Связанные термины

  • 1

    Введение в Playwright

    Установка, настройка окружения, первый тест, запуск в браузере

    7 вопросов10.0(1)
  • 2

    Локаторы и взаимодействие с элементами

    Стратегии поиска элементов, встроенные локаторы, цепочки, работа с текстом и атрибутами

    8 вопросов10.0(1)
  • 3

    Работа с формами

    Заполнение полей, отправка форм, выпадающие списки, чекбоксы, радио-кнопки, drag-and-drop

    8 вопросов10.0(1)
  • 4

    Навигация и ожидание

    Переходы между страницами, вкладки, фреймы, auto-waiting, явные ожидания

    8 вопросов10.0(1)
  • 5

    Фикстуры и параметризация

    pytest fixtures, параметризация тестов, настройка окружения через конфигурацию

    8 вопросов6.0(1)
  • 6

    Mocking и перехват запросов

    Перехват сетевых запросов, стабы, моки API, модификация ответов сервера

    8 вопросов9.0(1)
  • 7

    Аутентификация и авторизация

    Сохранение сессии, cookies, localStorage, обход login-формы, multi-factor auth

    8 вопросов10.0(1)
  • 8

    Визуальное тестирование

    Скриншоты, сравнение с эталоном, snapshot testing, настройка порогов

    8 вопросов10.0(1)
  • 9

    Тестирование мобильных устройств

    Эмуляция устройств, viewport, geolocation, touch events, mobile Chrome и Safari

    8 вопросов10.0(1)
  • 10

    Page Object Model

    Паттерн Page Object, композиция страниц, переиспользуемые компоненты, лучшие практики

    8 вопросов10.0(1)
  • 11

    Интеграция с CI/CD

    Запуск тестов в GitHub Actions и GitLab CI, headless режим, параллельный запуск, кэширование

    8 вопросов10.0(1)
  • 12

    Отчёты и отладка

    HTML-отчёты, Trace Viewer, пошаговая отладка, скринкасты, диагностика падений

    8 вопросов10.0(1)
  • Как проверить, что материал усвоен?

    После прохождения тем доступен зачёт по курсу «Playwright: автоматизация тестирования браузеров» — 20 случайных вопросов с порогом 80%. После зачёта открывается экзамен с развёрнутыми ответами и автоматической оценкой, приближённый к техническому собеседованию.

    Курс «Playwright: автоматизация тестирования браузеров» бесплатный?

    Да, курс полностью бесплатный: все 12 тем доступны без оплаты.