const browser =
await chromium.launch(); Сесії безкоштовні — платіть лише за трафік
Запуск Playwright у хмарі
Запускайте свої скрипти й тести Playwright у Chromium, який працює в хмарі Floppydata. Браузер стартує за одним API-запитом, connectOverCDP() підключається до нього, а решту коду змінювати не потрібно.
- Підключення через connectOverCDP() — без встановлення браузерів
- Node.js, Python і Playwright Test
- Безкоштовно з проксі Floppydata — платіть лише за трафік
Як запустити Playwright у хмарі
Створіть сесію одним API-запитом і передайте її connectUrl у Playwright. Приклад узято з посібника з Cloud Browser у нашій документації.
Три кроки
- 1 Створіть Client API key в акаунті Floppydata.
- 2 Надішліть POST /v2/browser/sessions. У відповіді буде connectUrl.
- 3 Передайте його в connectOverCDP() і працюйте як зазвичай. Закриття браузера зупиняє сесію.
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 import os, requestsfrom playwright.sync_api import sync_playwrightsession = requests.post( 'https://api.floppydata.net/v2/browser/sessions', headers={'X-Api-Key': os.environ['FLOPPY_API_KEY']}, json={'proxy': { 'type': 'residential', 'location': {'countryCode': 'US'}, }},).json()with sync_playwright() as p: browser = p.chromium.connect_over_cdp(session['connectUrl']) page = browser.contexts[0].new_page() page.goto('https://example.com/') print(page.title()) browser.close() import { test as base, expect, chromium } from '@playwright/test';const SESSIONS_URL = 'https://api.floppydata.net/v2/browser/sessions';const test = base.extend({ page: async ({}, use) => { const res = await fetch(SESSIONS_URL, { method: 'POST', headers: { 'X-Api-Key': process.env.FLOPPY_API_KEY, 'Content-Type': 'application/json', }, body: '{}', }); const { connectUrl } = await res.json(); const browser = await chromium.connectOverCDP(connectUrl); await use(await browser.contexts()[0].newPage()); await browser.close(); },});test('home page loads', async ({ page }) => { await page.goto('https://example.com/'); await expect(page.locator('h1')).toBeVisible();}); Створити сесію, підключитися, відкрити сторінку.
Від локального Playwright до хмарного Playwright
Локально кожен воркер Playwright запускає власний Chromium. Коли набір тестів або скрапер росте, ці браузери конкурують за CPU і пам'ять, а кожному раннеру в CI спочатку треба їх завантажити.
У Floppydata Cloud Browser Chromium працює віддалено. Ваш код підключається за протоколом Chrome DevTools, тож на вашому боці достатньо playwright-core, а кожен запуск отримує власну сесію браузера.
const browser =
await chromium.connectOverCDP(connectUrl); Усе, що нижче цього рядка, лишається без змін. connectUrl приходить із запиту на створення сесії вище.
Playwright із вбудованими проксі
Кожна сесія працює через проксі Floppydata, тож налаштовувати проксі-сервер у Playwright не потрібно. Оберіть тип IP, країну й ротацію та надішліть результат тілом запиту на створення сесії.
Налаштуйте хмарну сесію Playwright
{
"proxy": {
"type": "residential",
"location": {
"countryCode": "US"
},
"rotation": {
"mode": "sticky"
}
}
} У тому самому запиті можна вказати місто, штат або ASN. Резидентські IP є у 148 країнах, мобільні — у 150, серверні — у 71.
Локальний чи хмарний Playwright
| Локальний Playwright | Playwright у Cloud Browser | |
|---|---|---|
| Chromium | Встановлюється й оновлюється на кожній машині | Працює в хмарі Floppydata |
| Браузери в CI | Завантажуються на кожному раннері | Не потрібні: достатньо playwright-core |
| Проксі | Налаштовуються вами для кожного запуску | Вбудовані: резидентські, мобільні або серверні |
| Паралельні браузери | Обмежені вашими CPU і RAM | До 100 сесій на акаунт |
| Вартість браузера | Час ваших серверів | Безкоштовно: оплачується лише проксі-трафік |
| Підключення | Протокол Playwright, будь-який рушій браузера | CDP через connectOverCDP(), лише Chromium |
connectOverCDP() покриває те, що роблять більшість скриптів (навігацію, локатори, кліки, форми, очікування й JavaScript), але це не повний протокол Playwright. Нестандартні речі перевіряйте на своїх скриптах.
Масштабуйте й налаштовуйте кожну сесію
Кожне налаштування — необов'язкове поле запиту на створення сесії: надсилайте лише потрібні або нічого не надсилайте й отримайте резидентський проксі, узгоджений відбиток і тайм-аут 10 хвилин.
-
Паралельні запуски: до 100 сесій одночасно на одному акаунті, більше — за запитом
-
Відбиток: ОС, локаль, часовий пояс, залізо, а також маскування canvas, WebGL і WebRTC
-
Час роботи: від 1 хвилини до 6 годин, з перепідключенням при увімкненому keepAlive
-
Збережений стан: використовуйте ту саму ідентичність браузера та її cookies у різних сесіях
-
Start URLs: відкрийте одну або кілька сторінок під час запуску, кожну у своїй вкладці
-
Metadata: позначте сесію ID своєї задачі, щоб зіставити її з логами
Налагодження Playwright у живому браузері
Коли скрипт зупиняється на екрані, якого не очікував, — банері згоди чи додатковому кроці входу, — відкрийте живий перегляд сесії у своєму браузері й подивіться, що саме показує сторінка.
Playwright і живий перегляд працюють з однією сесією по черзі, тож запуск продовжується з місця зупинки, а не починається заново. Докладніше про UI mode
- 1 Створіть сесію з keepAlive: true, щоб відключення її не зупиняло.
- 2 Коли запуск зупиняється на неочікуваному екрані, відключіть Playwright.
- 3 Запитайте живий перегляд і відкрийте його: подивіться на сторінку й розберіться з нею вручну.
- 4 Запитайте сесію знову й перепідключіть Playwright за новим connectUrl.
Безкоштовно для користувачів проксі Floppydata
У Cloud Browser немає підписки, плати за час роботи чи за сесію. Кожна сесія працює через проксі Floppydata, і платите ви лише за проксі-трафік, який вона використовує: від $1.00 за ГБ, одна ціна для резидентських, мобільних і серверних.
Якщо ви вже купуєте проксі Floppydata, Cloud Browser входить до них: той самий баланс, той самий API-ключ. Запускайте до 100 сесій одночасно на одному акаунті або попросіть підтримку підняти ліміт.
Часті помилки підключення Playwright до хмари
Що повідомляють API або з'єднання, коли щось іде не так, і що з цим робити.
| Помилка | Що це означає | Що робити |
|---|---|---|
unauthorized | Підписаний connectUrl прострочений або недійсний. | Запитайте сесію знову й підключіться за її новим connectUrl. |
connection_in_use | Уже підключено інший клієнт або живий перегляд: до сесії можна підключитися лише один раз. | Закрийте інше підключення й повторіть спробу. |
session_not_active | Сесію зупинено, вона завершилася за часом або з помилкою. | Створіть нову сесію; для довгих задач збільште runtime.timeoutSeconds. |
| З'єднання закривається | Одне повідомлення перевищило приблизно 1 MiB — наприклад, повносторінковий скриншот або кадр скринкасту. | Робіть скриншоти видимої області чи елемента або обрізайте потрібну область. |
upstream_error | Тимчасовий збій на боці сервісу браузерів. | Повторіть спробу: зупинку сесії можна безпечно повторювати. |