Floppydata Floppydata

Сессии бесплатны — платите только за трафик

Запуск Playwright в облаке

Запускайте свои скрипты и тесты Playwright в Chromium, который работает в облаке Floppydata. Браузер стартует по одному API-запросу, connectOverCDP() подключается к нему, а остальной код менять не нужно.

  • Подключение через connectOverCDP() — без установки браузеров
  • Node.js, Python и Playwright Test
  • Бесплатно с прокси Floppydata — платите только за трафик

Как запустить Playwright в облаке

Создайте сессию одним API-запросом и передайте ее connectUrl в Playwright. Пример взят из руководства по Cloud Browser в нашей документации.

Три шага

  1. 1 Создайте Client API key в аккаунте Floppydata.
  2. 2 Отправьте POST /v2/browser/sessions. В ответе будет connectUrl.
  3. 3 Передайте его в connectOverCDP() и работайте как обычно. Закрытие браузера останавливает сессию.
run.mjs
import { chromium } from 'playwright';const res = await fetch('https://api.floppydata.net/v2/browser/sessions', {    method: 'POST',    headers: {        'X-Api-Key': process.env.FLOPPY_API_KEY,        'Content-Type': 'application/json',    },    body: JSON.stringify({        proxy: { type: 'residential', location: { countryCode: 'US' } },    }),});const { connectUrl } = await res.json();const browser = await chromium.connectOverCDP(connectUrl);const page = await browser.contexts()[0].newPage();await page.goto('https://example.com/');console.log(await page.title());await browser.close(); // stops the session

Создать сессию, подключиться, открыть страницу.

От локального Playwright к облачному Playwright

Локально каждый воркер Playwright запускает свой Chromium. Когда набор тестов или парсер растет, эти браузеры конкурируют за CPU и память, а каждому раннеру в CI сначала нужно их скачать.

В Floppydata Cloud Browser Chromium работает удаленно. Ваш код подключается по протоколу Chrome DevTools, поэтому на вашей стороне достаточно playwright-core, а каждый запуск получает собственную сессию браузера.

Локальный Playwright до
const browser =
    await chromium.launch();
Floppydata Cloud Browser после
const browser =
    await chromium.connectOverCDP(connectUrl);

Весь код после этой строки остается без изменений. connectUrl вы получаете из запроса на создание сессии выше.

Playwright со встроенными прокси

Каждая сессия работает через прокси Floppydata, так что настраивать прокси-сервер в Playwright не нужно. Выберите тип IP, страну и ротацию и передайте получившийся JSON в теле запроса на создание сессии.

Настройте облачную сессию Playwright

Тип прокси
Ротация
POST /v2/browser/sessions
{
  "proxy": {
    "type": "residential",
    "location": {
      "countryCode": "US"
    },
    "rotation": {
      "mode": "sticky"
    }
  }
}

В том же запросе можно указать город, штат или ASN. Резидентские IP есть в 148 странах, мобильные — в 150, серверные — в 71.

Локальный или облачный Playwright

Локальный Playwright в сравнении с Playwright в Floppydata Cloud Browser
Локальный Playwright Playwright в Cloud Browser
Chromium Устанавливается и обновляется на каждой машине Работает в облаке Floppydata
Браузеры в CI Скачиваются на каждом раннере Не нужны: достаточно playwright-core
Прокси Настраиваете сами для каждого запуска Встроены: резидентские, мобильные или серверные
Параллельные браузеры Ограничены CPU и RAM До 100 сессий на аккаунт
Стоимость браузера Ресурсы ваших серверов Бесплатно: оплачивается только трафик прокси
Подключение Протокол Playwright, любой движок браузера CDP через connectOverCDP(), только Chromium

connectOverCDP() поддерживает все, что обычно нужно скриптам (навигацию, локаторы, клики, формы, ожидания и JavaScript), но это не полный протокол Playwright. Нестандартные сценарии проверьте на своих скриптах.

Масштабирование и настройка сессий

Все настройки — необязательные поля запроса на создание сессии. Передавайте только нужные; без них сессия запустится с резидентским прокси, согласованным отпечатком и таймаутом 10 минут.

Отладка Playwright в живом браузере

Если скрипт уперся в то, чего не ожидал, — баннер cookies или лишний шаг при входе, — откройте живой просмотр сессии в своем браузере и посмотрите, что на самом деле показывает страница.

Playwright и живой просмотр подключаются к сессии по очереди, поэтому скрипт продолжит с того места, где остановился, а не начнет заново. Подробнее о UI mode

  1. 1 Создайте сессию с keepAlive: true, чтобы отключение ее не останавливало.
  2. 2 Если скрипт застрял на неожиданном экране, отключите Playwright.
  3. 3 Запросите ссылку на живой просмотр, откройте ее и вручную пройдите проблемный шаг.
  4. 4 Запросите данные сессии заново и переподключите Playwright по новому connectUrl.

Бесплатно для пользователей прокси Floppydata

У Cloud Browser нет подписки и платы за время работы или за сессию. Платите вы только за трафик прокси Floppydata, через которые идут сессии: от $1.00 за ГБ, по одной цене для резидентских, мобильных и серверных.

Если вы уже покупаете прокси Floppydata, Cloud Browser доступен без доплат: тот же баланс и тот же API-ключ. На одном аккаунте можно запускать до 100 сессий одновременно, а если нужно больше — напишите в поддержку.

Частые ошибки подключения Playwright к облаку

Что означают ошибки API и подключения и как их исправить.

Ошибки подключения к Cloud Browser и как их исправить
Ошибка Что это значит Что делать
unauthorized Подписанный connectUrl истек или недействителен. Запросите данные сессии заново и подключитесь по новому connectUrl.
connection_in_use К сессии уже подключен другой клиент или открыт живой просмотр, а одновременно допускается только одно подключение. Закройте другое подключение и повторите попытку.
session_not_active Сессия остановлена, истекла или завершилась с ошибкой. Создайте новую сессию; для долгих задач увеличьте runtime.timeoutSeconds.
Соединение закрывается Сообщение оказалось больше примерно 1 MiB — например, полностраничный скриншот или кадр скринкаста. Снимайте видимую область или отдельный элемент либо задайте clip для нужной области.
upstream_error Временный сбой на стороне сервиса браузеров. Повторите попытку: остановку сессии можно безопасно повторять.

Часто задаваемые вопросы

Какие браузеры поддерживаются?
Chromium. Сессии подключаются по протоколу Chrome DevTools, который Playwright поддерживает только для Chromium, поэтому проекты на Firefox и WebKit их использовать не могут. К тем же сессиям подключается и Puppeteer.
Чем connect() отличается от connectOverCDP()?
connect() работает по собственному протоколу Playwright, и на другой стороне нужен сервер Playwright. connectOverCDP() подключается к Chromium по протоколу Chrome DevTools — именно его дает сессия Floppydata, поэтому используйте connectOverCDP() (в Python — connect_over_cdp()). Навигацию, локаторы, клики, формы, ожидания и JavaScript он поддерживает, но это не полный протокол Playwright, так что нестандартные сценарии лучше проверить на своих скриптах.
Можно ли делать скриншоты в облачной сессии?
Да, но с одним ограничением: одно сообщение через подключение может весить около 1 MiB, поэтому очень большой полностраничный скриншот или кадр скринкаста может его оборвать. Снимайте видимую область или отдельный элемент либо задайте clip для нужной области.
Сколько сессий Playwright можно запускать параллельно?
До 100 одновременно на одном аккаунте. Если вашему набору тестов нужно больше, напишите в поддержку, чтобы поднять лимит.
Сколько может длиться сессия?
От 60 секунд до 6 часов, по умолчанию — 10 минут. Обычно закрытие подключения Playwright сразу останавливает сессию. С keepAlive: true можно отключаться и подключаться снова, пока не истечет срок сессии.
Можно ли сохранять cookies и авторизацию между запусками?
Да. Каждая сессия возвращает ID настроек, по которому в следующий раз восстанавливаются тот же отпечаток и состояние браузера; на аккаунте можно хранить до 20 сохраненных настроек. Кроме того, перед запуском можно импортировать до 100 cookies.

Другие решения облачного браузера