Открыть сервисСервис

Playwright — фреймворк для автоматизации браузеров

Playwright — это фреймворк с открытым исходным кодом для автоматизации веб-браузеров, разработанный компанией Microsoft. Он позволяет создавать скрипты для тестирования веб-приложений и выполнения браузерных задач на нескольких браузерных движках — Chromium, Firefox и WebKit — из единого API. Playwright поддерживает языки программирования TypeScript, JavaScript, Python, Java и C#, работает на Windows, Linux и macOS и ориентирован на надёжность, скорость и удобство отладки.

История

Playwright был создан командой, ранее работавшей над фреймворком Puppeteer в Google. После ухода из Google основатели проекта — Алексей Русаков, Дарья Ксения, Джеймс Лу, Джейсон Лейден и Павел Федосеев — присоединились к Microsoft, где в 2020 году был выпущен первый публичный релиз Playwright. Проект позиционировался как преемник Puppeteer, исправляющий его ограничения: в частности, изначальная версия Puppeteer поддерживала только Chromium, а Playwright изначально был рассчитан на мультибраузерность.

В 2021 году Microsoft выпустила Playwright для Python, а позже добавила поддержку Java и C#. В 2023 году появился Playwright для Ruby. В 2024 году вышла стабильная версия 1.44 с поддержкой новых возможностей браузеров и улучшенной трассировкой.

Возможности

Playwright предоставляет единый API для управления браузерами независимо от их движка. Основные возможности включают:

  • Мультибраузерность — один и тот же тест может выполняться в Chromium, Firefox и WebKit без изменений.
  • Автоматическое ожидание — встроенные механизмы ожидания элементов и событий устраняют необходимость в ручных задержках.
  • Изоляция контекстов — каждый тест может запускаться в отдельном браузерном контексте, что ускоряет параллельное выполнение.
  • Сетевые возможности — перехват и подмена сетевых запросов, эмуляция условий сети.
  • Эмуляция устройств — имитация мобильных устройств, геолокации, языковых настроек.
  • Действия с файлами — загрузка и скачивание файлов, работа с диалогами.
  • Отладка — интеграция с инструментами разработчика, запись и воспроизведение сценариев.

Установка и базовое использование

Для установки Playwright через npm выполняется команда:

`` npm init playwright@latest ``

Для Python:

`` pip install playwright playwright install ``

Пример простого теста на TypeScript:

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

test('главная страница открывается', async ({ page }) => { await page.goto('https://example.com'); await expect(page).toHaveTitle(/Example/); }); ```

Сравнение с Puppeteer

КритерийPlaywrightPuppeteer
БраузерыChromium, Firefox, WebKitпреимущественно Chromium
ЯзыкиTS, JS, Python, Java, C#, RubyJS, TS, Python
Автоожиданиевстроеночастично
Параллельностьконтексты из коробкитребует настройки

Применение

Playwright широко используется для end-to-end тестирования веб-приложений, скрейпинга данных, автоматизации рутинных браузерных операций и построения инфраструктуры тестирования в CI/CD-конвейерах. Среди пользователей фреймворка — крупные технологические компании, применяющие его для проверки собственных продуктов.

Интересные факты

  • Название Playwright отсылает к театральному термину «драматург», подчёркивая идею сценарного управления браузером.
  • Playwright изначально поддерживал WebKit — движок Safari — что было нетипично для подобных инструментов на момент выхода.
  • Команда разработчиков фреймворка активно участвует в стандартизации протокола CDP (Chrome DevTools Protocol) и разработке собственного протокола Playwright.

Источники

  • Документация Playwright (playwright.dev)
  • Блог Microsoft Developer
  • Репозиторий проекта на GitHub (microsoft/playwright)
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru