← Ко всем open source проектам

Puppeteer

puppeteer/puppeteer

Puppeteer — JavaScript API для управления Chrome и Firefox через DevTools Protocol или WebDriver BiDi, обычно без графического окна.

Форки 9,427
Автор puppeteer
Язык TypeScript
Лицензия Apache-2.0
Обновлено 2026-06-09

Что это такое

Puppeteer — библиотека для управления браузером из JavaScript и TypeScript. Она запускает Chrome или Firefox, открывает страницы, нажимает элементы, вводит текст, читает DOM, делает скриншоты и автоматизирует действия в браузере.

Проект вырос вокруг Chrome DevTools Protocol и долго был одним из главных способов автоматизации Chrome без графического окна. Сейчас он также работает с WebDriver BiDi и Firefox, а пакет puppeteer скачивает совместимый Chrome по умолчанию.

Что внутри и как используют

Внутри репозитория — сама библиотека, API, тесты, документация и пакеты для работы с браузером. Есть puppeteer-core для окружений, где браузер уже установлен или управляется отдельно.

Минимальная автоматизация

Пример показывает базовый сценарий: открыть страницу, прочитать заголовок и закрыть браузер.

Язык: TypeScript
import puppeteer from 'puppeteer'

const browser = await puppeteer.launch()
const page = await browser.newPage()

await page.goto('https://developer.chrome.com/')
console.log(await page.title())

await browser.close()

Типовые сценарии: end-to-end проверки, генерация PDF или скриншотов, сбор данных с внутренних страниц, тестирование расширений, автоматизация админок. Для пользовательских тестов часто выбирают Playwright, но Puppeteer остается сильным инструментом Chrome-автоматизации.

Сильные стороны и ограничения

Сильная сторона — понятный API и близость к возможностям браузера. Puppeteer быстро решает задачи, где нужен настоящий Chromium, а не HTTP-клиент.

Ограничение — хрупкость браузерной автоматизации. Селекторы меняются, сайты защищаются от роботов, а окружение без графического окна отличается от реального пользователя. Для надежности нужны устойчивые локаторы, ожидания и контроль окружения.