const browser =
await chromium.launch(); As sessões são gratuitas — pague apenas pelo tráfego
Execute o Playwright na nuvem
Aponte seus scripts e testes do Playwright para o Chromium na nuvem da Floppydata. Uma requisição à API inicia um navegador, connectOverCDP() se conecta a ele, e o resto do seu código continua como está.
- Conecte com connectOverCDP(), sem instalar navegadores
- Node.js, Python e Playwright Test
- Grátis com os proxies da Floppydata: você paga só pelo tráfego
Como executar o Playwright na nuvem
Crie uma sessão com uma requisição à API e passe a connectUrl dela para o Playwright. O exemplo segue o guia do Cloud Browser na nossa documentação.
Três passos
- 1 Crie uma Client API key na sua conta da Floppydata.
- 2 Envie POST /v2/browser/sessions. A resposta traz uma connectUrl.
- 3 Passe-a para connectOverCDP() e trabalhe normalmente. Fechar o navegador encerra a sessão.
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();}); Criar uma sessão, conectar, abrir uma página.
Do Playwright local ao Playwright na nuvem
Localmente, cada worker do Playwright inicia seu próprio Chromium. Quando uma suíte de testes ou um scraper cresce, esses navegadores disputam CPU e memória, e cada runner de CI precisa baixá-los primeiro.
Com o Floppydata Cloud Browser, o Chromium roda remotamente. Seu código se conecta pelo Chrome DevTools Protocol, então do seu lado basta o playwright-core, e cada execução ganha sua própria sessão de navegador.
const browser =
await chromium.connectOverCDP(connectUrl); Tudo depois desta linha continua igual. A connectUrl vem da requisição de criação acima.
Playwright com proxies integrados
Cada sessão passa pelos proxies da Floppydata, então não há servidor proxy para configurar no Playwright. Escolha o tipo de IP, o país e a rotação, e envie o resultado como corpo da requisição de criação.
Configure sua sessão do Playwright na nuvem
{
"proxy": {
"type": "residential",
"location": {
"countryCode": "US"
},
"rotation": {
"mode": "sticky"
}
}
} Na mesma requisição dá para indicar uma cidade, um estado ou um ASN. Os IPs residenciais cobrem 148 países, os móveis 150 e os de datacenter 71.
Playwright local ou na nuvem
| Playwright local | Playwright no Cloud Browser | |
|---|---|---|
| Chromium | Instalado e atualizado em cada máquina | Roda na nuvem da Floppydata |
| Navegadores no CI | Baixados em cada runner | Não são necessários: o playwright-core basta |
| Proxies | Configurados por você a cada execução | Integrados: residenciais, móveis ou de datacenter |
| Navegadores em paralelo | Limitados pela sua CPU e RAM | Até 100 sessões por conta |
| Custo do navegador | O tempo dos seus servidores | Grátis: só o tráfego de proxy é cobrado |
| Conexão | Protocolo do Playwright, qualquer engine de navegador | CDP com connectOverCDP(), apenas Chromium |
connectOverCDP() cobre o que a maioria dos scripts faz (navegação, locators, cliques, formulários, esperas e JavaScript), mas não é o protocolo completo do Playwright. Verifique qualquer coisa incomum com seus próprios scripts.
Escale e ajuste cada sessão
Cada configuração é um campo opcional da requisição de criação: envie só as que precisar, ou não envie nada e receba um proxy residencial, uma impressão digital coerente e um tempo limite de 10 minutos.
-
Execuções em paralelo: até 100 sessões ao mesmo tempo em uma conta, mais sob solicitação
-
Impressão digital: SO, localidade, fuso horário, hardware e mascaramento de canvas, WebGL e WebRTC
-
Tempo de execução: de 1 minuto a 6 horas, com reconexão quando o keepAlive está ativado
-
Estado salvo: reutilize uma identidade de navegador e seus cookies entre sessões
-
Start URLs: abra uma ou mais páginas ao iniciar, cada uma em sua própria aba
-
Metadata: marque uma sessão com o ID da sua própria tarefa para relacioná-la aos seus logs
Depure execuções do Playwright em um navegador ao vivo
Quando um script para em uma tela que não esperava, como um banner de consentimento ou uma etapa extra de login, abra uma visualização ao vivo da sessão no seu próprio navegador e veja exatamente o que a página mostra.
O Playwright e a visualização ao vivo se revezam na mesma sessão, então a execução continua de onde parou em vez de recomeçar. Mais sobre o modo UI
- 1 Crie a sessão com keepAlive: true, para que desconectar não a encerre.
- 2 Quando uma execução para em uma tela inesperada, desconecte o Playwright.
- 3 Solicite uma visualização ao vivo e abra-a: veja a página e resolva a situação manualmente.
- 4 Obtenha a sessão de novo e reconecte o Playwright com a nova connectUrl.
Grátis para usuários de proxies da Floppydata
O Cloud Browser não tem assinatura, taxa de execução nem taxa por sessão. Cada sessão passa pelos proxies da Floppydata, e você paga apenas pelo tráfego de proxy que ela usa: a partir de $1.00 por GB, o mesmo preço para residenciais, móveis e de datacenter.
Se você já compra proxies da Floppydata, o Cloud Browser está incluído: o mesmo saldo, a mesma chave de API. Execute até 100 sessões ao mesmo tempo em uma conta ou peça ao suporte para aumentar o limite.
Erros comuns de conexão do Playwright na nuvem
O que a API ou a conexão informa quando algo dá errado, e o que fazer a respeito.
| Erro | O que significa | O que fazer |
|---|---|---|
unauthorized | A connectUrl assinada expirou ou é inválida. | Obtenha a sessão de novo e conecte-se com a nova connectUrl dela. |
connection_in_use | Outro cliente ou uma visualização ao vivo já está conectado: só é permitida uma conexão por sessão. | Feche a outra conexão e tente de novo. |
session_not_active | A sessão foi encerrada, expirou ou falhou. | Crie uma nova sessão; para tarefas longas, aumente runtime.timeoutSeconds. |
| A conexão é encerrada | Uma única mensagem passou de cerca de 1 MiB, como uma captura de página inteira ou um quadro de screencast. | Faça capturas do viewport ou de um elemento, ou recorte a área de que precisa. |
upstream_error | Uma operação do serviço de navegadores falhou por um instante. | Tente de novo: encerrar uma sessão pode ser repetido com segurança. |