Что это такое
Puppeteer — библиотека для управления браузером из JavaScript и TypeScript. Она запускает Chrome или Firefox, открывает страницы, нажимает элементы, вводит текст, читает DOM, делает скриншоты и автоматизирует действия в браузере.
Проект вырос вокруг Chrome DevTools Protocol и долго был одним из главных способов автоматизации Chrome без графического окна. Сейчас он также работает с WebDriver BiDi и Firefox, а пакет puppeteer скачивает совместимый Chrome по умолчанию.
Что внутри и как используют
Внутри репозитория — сама библиотека, API, тесты, документация и пакеты для работы с браузером. Есть puppeteer-core для окружений, где браузер уже установлен или управляется отдельно.
Минимальная автоматизация
Пример показывает базовый сценарий: открыть страницу, прочитать заголовок и закрыть браузер.
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-клиент.
Ограничение — хрупкость браузерной автоматизации. Селекторы меняются, сайты защищаются от роботов, а окружение без графического окна отличается от реального пользователя. Для надежности нужны устойчивые локаторы, ожидания и контроль окружения.