Puppeteer — это библиотека для автоматизации браузера на основе Chrome
или Chromium. Основные функции Puppeteer связаны с управлением
браузером, навигацией, манипуляциями с элементами страницы и
тестированием. Чтобы начать работать с Puppeteer, необходимо уметь
запускать браузер и устанавливать с ним соединение. В этой главе
рассматриваются два основных метода для этого: launch и
connect.
Метод launch используется для запуска нового экземпляра
браузера. Он позволяет полностью контролировать процесс запуска, включая
установку параметров, таких как режим без графического интерфейса,
создание прокси-сервера, и другие.
const browser = await puppeteer.launch([options]);
options — объект, содержащий параметры конфигурации
браузера. Эти параметры могут включать такие настройки, как режим
работы, путь к исполняемому файлу браузера, отключение GPU, указание
прокси и другие.
const puppeteer = require(&
(async () => {
const browser = await puppeteer.launch({
headless: true, // Без графического интерфейса
args: ['--no-sandbox', '--disable-setuid-sandbox'] // Дополнительные аргументы для запуска
});
const page = await browser.newPage();
await page.goto('https://example.com');
await browser.close();
})();
headless Если установлено значение true,
браузер запускается без графического интерфейса (в фоновом режиме). Это
полезно для тестирования или автоматизации на сервере. Если
false, браузер запускается в видимом режиме.
args Массив дополнительных аргументов, которые
передаются при запуске браузера. Например, можно использовать флаг
–no-sandbox, чтобы обойти ограничения песочницы на
некоторых системах.
executablePath Путь к исполняемому файлу браузера. Это может быть полезно, если нужно использовать специфическую версию браузера или другой браузер, помимо стандартного Chromium.
userDataDir Указывает директорию для хранения данных пользователя, таких как куки, сессии и другие данные браузера. Это позволяет создавать устойчивые сессии для тестирования.
После того как браузер был запущен с помощью launch, можно
открывать новые страницы с помощью метода newPage.
const page = await browser.newPage();
На странице можно выполнять различные действия, такие как переход по URL, ввод текста в поля и взаимодействие с элементами.
Для завершения работы с браузером используется метод close:
await browser.close();
Метод connect используется для установления соединения с
уже запущенным экземпляром браузера. Это может быть полезно, если нужно
подключиться к удалённому браузеру, запущенному в другом процессе или на
удалённом сервере, или если браузер уже был запущен вручную.
const browser = await puppeteer.connect([options]);
options — объект, который содержит параметры соединения,
включая URL для подключения к удалённому браузеру и другие настройки.
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.connect({
browserURL: 'ws://localhost:9222/devtools/browser/<id>'
});
const page = await browser.newPage();
await page.goto('https://example.com');
await browser.disconnect();
})();
browserURL Указывает URL для подключения к уже
запущенному браузеру. Это обычно используется с параметром
–remote-debugging-port при запуске браузера с отладочным
сервером.
defaultViewport Этот параметр позволяет задать стандартные размеры окна для всех страниц в текущем браузере. Можно указать ширину и высоту, а также другие настройки, такие как DPI.
slowMo Параметр для замедления выполнения команд в браузере. Это полезно для наблюдения за процессами и отладки.
Метод connect идеально подходит для случаев, когда браузер
уже запущен, и необходимо подключиться к нему для выполнения
автоматических тестов или скриптов. Это может быть полезно в
распределённых системах тестирования или при подключении к браузерам,
запущенным на удалённых серверах.
| Параметр |
launch
|
connect
|
|---|---|---|
| Тип использования | Запуск нового браузера | Подключение к уже запущенному браузеру |
| Контроль над браузером | Полный контроль, можно настроить параметры запуска | Ограниченный контроль, необходимо заранее настроить браузер для подключения |
| Применение | Локальное тестирование, автоматизация с нуля | Подключение к удалённым или предварительно запущенным браузерам |
| Аргументы | Параметры запуска браузера | URL для подключения, параметры соединения |
Методы launch и connect предоставляют два
разных подхода для работы с браузером в Puppeteer. launch
идеально подходит для запуска нового экземпляра браузера, когда
требуется полный контроль над процессом его инициализации. Метод
connect, в свою очередь, используется для подключения к уже
запущенному браузеру, что полезно в сценариях с удалённым браузером или
для работы с браузерами, которые были запущены вручную. Выбор между
этими методами зависит от специфики задачи и необходимого уровня
контроля над браузером.