0Pricing
React Academy · Урок

Начало работы с Playwright для React

Пишите тесты Playwright, которые открывают браузер, взаимодействуют с приложением React и проверяют результаты.

«Начало работы с Playwright для React» — бесплатный урок React Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения React Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс React Academy содержит 4 уроков всего.

Что такое Playwright

Playwright — это фреймворк сквозного тестирования на Node.js, который управляет реальными браузерами Chromium, Firefox и WebKit. Он идеально подходит для проверки полноценных сценариев React-приложений, включая маршрутизацию, аутентификацию и взаимодействие с API.

Установка

Установите Playwright и его бинарные файлы браузеров одной командой.

# npm init playwright@latest
# or
# npx playwright install

# playwright.config.ts is created automatically

Конфигурация Playwright для React

Настройте Playwright так, чтобы перед запуском тестов он запускал сервер разработки.

import { defineConfig } from '@playwright/test';

export default defineConfig({
  testDir: './e2e',
  use: { baseURL: 'http://localhost:5173' },
  webServer: {
    command: 'npm run dev',
    url: 'http://localhost:5173',
    reuseExistingServer: !process.env.CI,
  },
});

Написание первого теста

В тестах используется page — объект страницы браузера. Перейдите по URL, взаимодействуйте с элементами и проверьте результат.

import { test, expect } from '@playwright/test';

test('home page shows heading', async ({ page }) => {
  await page.goto('/');
  await expect(page.getByRole('heading', { name: 'Welcome' })).toBeVisible();
});

Локаторы

Локаторы Playwright похожи на запросы RTL. Для устойчивости отдавайте предпочтение локаторам на основе ролей.

// By role
const button = page.getByRole('button', { name: 'Submit' });
// By label
const input = page.getByLabel('Email address');
// By text
const link = page.getByText('Sign in');
// By placeholder
const search = page.getByPlaceholder('Search products');

Нажатие и ввод текста

Взаимодействуйте с элементами с помощью click(), fill(), press() и selectOption().

await page.getByLabel('Email').fill('user@example.com');
await page.getByLabel('Password').fill('secret');
await page.getByRole('button', { name: 'Log in' }).click();

Ожидание навигации

Playwright автоматически ожидает готовности элементов, но при необходимости можно явно дождаться завершения навигации или сетевых запросов.

// Wait for URL to change after form submit
await page.waitForURL('/dashboard');

// Wait for a specific request
const [response] = await Promise.all([
  page.waitForResponse('/api/users'),
  page.click('button[type="submit"]'),
]);

Проверки

Используйте expect(locator) со встроенными сопоставителями Playwright. Они автоматически ожидают выполнения условия.

await expect(page.getByRole('heading')).toHaveText('Dashboard');
await expect(page.getByTestId('user-count')).toContainText('5 users');
await expect(page.getByRole('button', { name: 'Delete' })).toBeDisabled();
await expect(page).toHaveURL('/success');

Создание снимков экрана при сбое

При настроенной конфигурации Playwright автоматически создает снимки экрана и трассировки при сбое теста. Включите эту возможность в конфигурации.

use: {
  screenshot: 'only-on-failure',
  trace: 'retain-on-failure',
  video: 'retain-on-failure',
}

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

Запускайте все тесты без интерфейса или используйте --ui для интерактивного обозревателя тестов, который позволяет визуально проходить их по шагам.

# Run all tests
npx playwright test

# Run with UI mode
npx playwright test --ui

# Run a specific file
npx playwright test e2e/login.spec.ts

# Debug mode
npx playwright test --debug

Просмотр трассировки Playwright

Если тест завершился с ошибкой, откройте файл трассировки с помощью npx playwright show-trace, чтобы воспроизвести тест пошагово со снимками экрана, сетевыми запросами и журналами консоли.

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

В CI Playwright по умолчанию работает без интерфейса. Установите браузеры с помощью npx playwright install --with-deps и запускайте тесты как обычный скрипт npm.

# .github/workflows/e2e.yml
- name: Install Playwright Browsers
  run: npx playwright install --with-deps
- name: Run Playwright tests
  run: npx playwright test

Быстрая проверка

Какой метод Playwright следует использовать для заполнения текстового поля ввода?

Итоги

Playwright тестирует реальные браузеры и автоматически ожидает готовности элементов. Используйте локаторы на основе ролей, fill() и click() для взаимодействия, expect(locator) для проверок и режим --ui для визуальной отладки во время разработки.

Часто задаваемые вопросы

Урок «Начало работы с Playwright для React» бесплатный?

Да — полный текст урока «Начало работы с Playwright для React» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс React Academy, подпишись на CoddyKit PRO. Курс React Academy содержит 4 уроков всего.

Чему я научусь в уроке «Начало работы с Playwright для React»?

Пишите тесты Playwright, которые открывают браузер, взаимодействуют с приложением React и проверяют результаты. Ты практикуешь React Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать React Academy?

Предыдущий опыт не требуется. React Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Начало работы с Playwright для React»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке React Academy?

Да. Каждый урок React Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Интеграционное тестирование с React Testing Library
  2. Тестирование асинхронного интерфейса и вызовов API с MSW
  3. Начало работы с Playwright для React
  4. Сквозное тестирование форм и пользовательских сценариев
← Назад к React Academy