const browser =
await chromium.launch(); Las sesiones son gratis: paga solo por el tráfico
Ejecuta Playwright en la nube
Dirige tus scripts y pruebas de Playwright a Chromium en la nube de Floppydata. Una solicitud a la API inicia un navegador, connectOverCDP() se conecta a él y el resto de tu código queda tal cual.
- Conéctate con connectOverCDP(), sin instalar navegadores
- Node.js, Python y Playwright Test
- Gratis con los proxies de Floppydata: solo pagas el tráfico
Cómo ejecutar Playwright en la nube
Crea una sesión con una solicitud a la API y pasa su connectUrl a Playwright. El ejemplo sigue la guía de Cloud Browser de nuestra documentación.
Tres pasos
- 1 Crea una Client API key en tu cuenta de Floppydata.
- 2 Envía POST /v2/browser/sessions. La respuesta incluye una connectUrl.
- 3 Pásala a connectOverCDP() y trabaja como siempre. Cerrar el navegador detiene la sesión.
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();}); Crear una sesión, conectarse, abrir una página.
De Playwright local a Playwright en la nube
En local, cada worker de Playwright inicia su propio Chromium. Cuando crece una suite de pruebas o un scraper, esos navegadores compiten por CPU y memoria, y cada runner de CI tiene que descargarlos primero.
Con Floppydata Cloud Browser, Chromium se ejecuta de forma remota. Tu código se conecta mediante el Chrome DevTools Protocol, así que en tu lado basta con playwright-core, y cada ejecución obtiene su propia sesión de navegador.
const browser =
await chromium.connectOverCDP(connectUrl); Todo lo que va después de esta línea sigue igual. connectUrl viene de la solicitud de creación de arriba.
Playwright con proxies integrados
Cada sesión pasa por proxies de Floppydata, así que no hay que configurar ningún servidor proxy en Playwright. Elige el tipo de IP, el país y la rotación, y envía el resultado como cuerpo de la solicitud de creación.
Configura tu sesión de Playwright en la nube
{
"proxy": {
"type": "residential",
"location": {
"countryCode": "US"
},
"rotation": {
"mode": "sticky"
}
}
} En la misma solicitud puedes indicar una ciudad, un estado o un ASN. Las IP residenciales cubren 148 países, las móviles 150 y las de centros de datos 71.
Playwright local o en la nube
| Playwright local | Playwright en Cloud Browser | |
|---|---|---|
| Chromium | Se instala y actualiza en cada máquina | Se ejecuta en la nube de Floppydata |
| Navegadores en CI | Se descargan en cada runner | No hacen falta: basta con playwright-core |
| Proxies | Los configuras tú en cada inicio | Integrados: residenciales, móviles o de centros de datos |
| Navegadores en paralelo | Limitados por tu CPU y tu RAM | Hasta 100 sesiones por cuenta |
| Coste del navegador | El tiempo de tus servidores | Gratis: solo se factura el tráfico de proxy |
| Conexión | Protocolo de Playwright, cualquier motor de navegador | CDP con connectOverCDP(), solo Chromium |
connectOverCDP() cubre lo que hacen la mayoría de los scripts (navegación, localizadores, clics, formularios, esperas y JavaScript), pero no es el protocolo completo de Playwright. Comprueba cualquier cosa poco habitual con tus propios scripts.
Escala y ajusta cada sesión
Cada ajuste es un campo opcional de la solicitud de creación: envía solo los que necesites, o no envíes nada y obtén un proxy residencial, una huella coherente y un tiempo límite de 10 minutos.
-
Ejecuciones en paralelo: hasta 100 sesiones a la vez en una cuenta, más si lo solicitas
-
Huella: sistema operativo, configuración regional, zona horaria, hardware y enmascaramiento de canvas, WebGL y WebRTC
-
Tiempo de ejecución: de 1 minuto a 6 horas, con reconexión cuando keepAlive está activado
-
Estado guardado: reutiliza una identidad de navegador y sus cookies entre sesiones
-
Start URLs: abre una o varias páginas al iniciar, cada una en su propia pestaña
-
Metadata: etiqueta una sesión con el ID de tu propia tarea para relacionarla con tus logs
Depura ejecuciones de Playwright en un navegador en vivo
Cuando un script se detiene en una pantalla que no esperaba, como un banner de consentimiento o un paso de inicio de sesión extra, abre una vista en vivo de la sesión en tu propio navegador y ve exactamente lo que muestra la página.
Playwright y la vista en vivo se turnan en una misma sesión, así que la ejecución continúa donde se detuvo en lugar de empezar de nuevo. Más sobre el modo UI
- 1 Crea la sesión con keepAlive: true para que desconectarte no la detenga.
- 2 Cuando una ejecución se detiene en una pantalla inesperada, desconecta Playwright.
- 3 Solicita una vista en vivo y ábrela: mira la página y resuélvela a mano.
- 4 Vuelve a obtener la sesión y reconecta Playwright con la nueva connectUrl.
Gratis para usuarios de proxies de Floppydata
Cloud Browser no tiene suscripción ni cobra por tiempo de ejecución o por sesión. Cada sesión pasa por proxies de Floppydata, y lo único que pagas es el tráfico de proxy que usa: desde $1.00 por GB, la misma tarifa para residenciales, móviles y de centros de datos.
Si ya compras proxies de Floppydata, Cloud Browser está incluido: el mismo saldo, la misma clave de API. Ejecuta hasta 100 sesiones a la vez en una cuenta o pide al soporte que amplíe el límite.
Errores comunes de conexión de Playwright en la nube
Lo que dicen la API o la conexión cuando algo sale mal, y qué hacer al respecto.
| Error | Qué significa | Qué hacer |
|---|---|---|
unauthorized | La connectUrl firmada caducó o no es válida. | Vuelve a obtener la sesión y conéctate con su nueva connectUrl. |
connection_in_use | Ya hay otro cliente o una vista en vivo conectados: solo se permite una conexión por sesión. | Cierra la otra conexión y vuelve a intentarlo. |
session_not_active | La sesión se detuvo, caducó o falló. | Crea una sesión nueva; para trabajos largos, aumenta runtime.timeoutSeconds. |
| La conexión se cierra | Un solo mensaje superó aproximadamente 1 MiB, como una captura de página completa o un fotograma de screencast. | Haz capturas del viewport o de un elemento, o recorta el área que necesites. |
upstream_error | Una operación del servicio de navegadores falló por un momento. | Reintenta: detener una sesión se puede repetir sin riesgo. |