Запуск браузера: launch и connect

Puppeteer — это библиотека для автоматизации браузера на основе Chrome или Chromium. Основные функции Puppeteer связаны с управлением браузером, навигацией, манипуляциями с элементами страницы и тестированием. Чтобы начать работать с Puppeteer, необходимо уметь запускать браузер и устанавливать с ним соединение. В этой главе рассматриваются два основных метода для этого: launch и connect.

Метод launch

Метод launch используется для запуска нового экземпляра браузера. Он позволяет полностью контролировать процесс запуска, включая установку параметров, таких как режим без графического интерфейса, создание прокси-сервера, и другие.

Синтаксис метода 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();
})();
Важные параметры
  1. headless Если установлено значение true, браузер запускается без графического интерфейса (в фоновом режиме). Это полезно для тестирования или автоматизации на сервере. Если false, браузер запускается в видимом режиме.

  2. args Массив дополнительных аргументов, которые передаются при запуске браузера. Например, можно использовать флаг –no-sandbox, чтобы обойти ограничения песочницы на некоторых системах.

  3. executablePath Путь к исполняемому файлу браузера. Это может быть полезно, если нужно использовать специфическую версию браузера или другой браузер, помимо стандартного Chromium.

  4. userDataDir Указывает директорию для хранения данных пользователя, таких как куки, сессии и другие данные браузера. Это позволяет создавать устойчивые сессии для тестирования.

Управление страницами

После того как браузер был запущен с помощью launch, можно открывать новые страницы с помощью метода newPage.

const page = await browser.newPage();

На странице можно выполнять различные действия, такие как переход по URL, ввод текста в поля и взаимодействие с элементами.

Закрытие браузера

Для завершения работы с браузером используется метод close:

await browser.close();

Метод connect

Метод connect используется для установления соединения с уже запущенным экземпляром браузера. Это может быть полезно, если нужно подключиться к удалённому браузеру, запущенному в другом процессе или на удалённом сервере, или если браузер уже был запущен вручную.

Синтаксис метода 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();
})();
Важные параметры
  1. browserURL Указывает URL для подключения к уже запущенному браузеру. Это обычно используется с параметром –remote-debugging-port при запуске браузера с отладочным сервером.

  2. defaultViewport Этот параметр позволяет задать стандартные размеры окна для всех страниц в текущем браузере. Можно указать ширину и высоту, а также другие настройки, такие как DPI.

  3. slowMo Параметр для замедления выполнения команд в браузере. Это полезно для наблюдения за процессами и отладки.

Когда использовать connect?

Метод connect идеально подходит для случаев, когда браузер уже запущен, и необходимо подключиться к нему для выполнения автоматических тестов или скриптов. Это может быть полезно в распределённых системах тестирования или при подключении к браузерам, запущенным на удалённых серверах.

Сравнение launch и connect

Параметр launch connect
Тип использования Запуск нового браузера Подключение к уже запущенному браузеру
Контроль над браузером Полный контроль, можно настроить параметры запуска Ограниченный контроль, необходимо заранее настроить браузер для подключения
Применение Локальное тестирование, автоматизация с нуля Подключение к удалённым или предварительно запущенным браузерам
Аргументы Параметры запуска браузера URL для подключения, параметры соединения

Заключение

Методы launch и connect предоставляют два разных подхода для работы с браузером в Puppeteer. launch идеально подходит для запуска нового экземпляра браузера, когда требуется полный контроль над процессом его инициализации. Метод connect, в свою очередь, используется для подключения к уже запущенному браузеру, что полезно в сценариях с удалённым браузером или для работы с браузерами, которые были запущены вручную. Выбор между этими методами зависит от специфики задачи и необходимого уровня контроля над браузером.