const browser =
await chromium.launch(); Sitzungen sind kostenlos – Sie zahlen nur für Traffic
Playwright in der Cloud ausführen
Richten Sie Ihre Playwright-Skripte und -Tests auf Chromium in der Floppydata-Cloud aus. Eine API-Anfrage startet einen Browser, connectOverCDP() verbindet sich damit, und der Rest Ihres Codes bleibt, wie er ist.
- Verbinden mit connectOverCDP() – keine Browser zu installieren
- Node.js, Python und Playwright Test
- Kostenlos mit Floppydata-Proxys – Sie zahlen nur für Traffic
So führen Sie Playwright in der Cloud aus
Erstellen Sie eine Sitzung mit einer API-Anfrage und übergeben Sie ihre connectUrl an Playwright. Das Beispiel folgt dem Cloud-Browser-Leitfaden in unserer Dokumentation.
Drei Schritte
- 1 Erstellen Sie einen Client API key in Ihrem Floppydata-Konto.
- 2 Senden Sie POST /v2/browser/sessions. Die Antwort enthält eine connectUrl.
- 3 Übergeben Sie sie an connectOverCDP() und arbeiten Sie wie gewohnt. Das Schließen des Browsers beendet die Sitzung.
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();}); Sitzung erstellen, verbinden, Seite öffnen.
Von lokalem Playwright zu Playwright in der Cloud
Lokal startet jeder Playwright-Worker sein eigenes Chromium. Wächst eine Testsuite oder ein Scraper, konkurrieren diese Browser um CPU und Arbeitsspeicher, und jeder CI-Runner muss sie zuerst herunterladen.
Beim Floppydata Cloud Browser läuft Chromium remote. Ihr Code verbindet sich über das Chrome DevTools Protocol, also reicht auf Ihrer Seite playwright-core, und jeder Lauf erhält eine eigene Browser-Sitzung.
const browser =
await chromium.connectOverCDP(connectUrl); Alles nach dieser Zeile bleibt gleich. connectUrl kommt aus der Erstellungsanfrage oben.
Playwright mit integrierten Proxys
Jede Sitzung läuft über Floppydata-Proxys, also müssen Sie in Playwright keinen Proxyserver einrichten. Wählen Sie IP-Typ, Land und Rotation und senden Sie das Ergebnis als Body der Anfrage zum Erstellen der Sitzung.
Konfigurieren Sie Ihre Playwright-Cloud-Sitzung
{
"proxy": {
"type": "residential",
"location": {
"countryCode": "US"
},
"rotation": {
"mode": "sticky"
}
}
} Stadt, Bundesland oder ASN lassen sich in derselben Anfrage festlegen. Residential-IPs gibt es in 148 Ländern, mobile in 150 und Rechenzentrums-IPs in 71.
Lokales vs. Cloud-Playwright
| Lokales Playwright | Playwright im Cloud Browser | |
|---|---|---|
| Chromium | Auf jedem Rechner installiert und aktualisiert | Läuft in der Floppydata-Cloud |
| Browser in CI | Auf jedem Runner heruntergeladen | Nicht nötig: playwright-core reicht |
| Proxys | Von Ihnen für jeden Start eingerichtet | Integriert: Residential, Mobil oder Rechenzentrum |
| Parallele Browser | Begrenzt durch Ihre CPU und Ihren RAM | Bis zu 100 Sitzungen pro Konto |
| Kosten des Browsers | Die Zeit Ihrer Server | Kostenlos: nur der Proxy-Traffic wird abgerechnet |
| Verbindung | Playwright-Protokoll, jede Browser-Engine | CDP mit connectOverCDP(), nur Chromium |
connectOverCDP() deckt ab, was die meisten Skripte tun (Navigation, Locators, Klicks, Formulare, Wartevorgänge und JavaScript), ist aber nicht das vollständige Playwright-Protokoll. Prüfen Sie Ungewöhnliches mit Ihren eigenen Skripten.
Jede Sitzung skalieren und anpassen
Jede Einstellung ist ein optionales Feld der Erstellungsanfrage: Senden Sie nur die nötigen – oder gar keine und erhalten Sie einen Residential-Proxy, einen stimmigen Fingerprint und ein Timeout von 10 Minuten.
-
Parallele Läufe: bis zu 100 Sitzungen gleichzeitig auf einem Konto, mehr auf Anfrage
-
Fingerprint: Betriebssystem, Locale, Zeitzone, Hardware sowie Canvas-, WebGL- und WebRTC-Maskierung
-
Laufzeit: von 1 Minute bis 6 Stunden, mit Neuverbindung bei aktiviertem keepAlive
-
Gespeicherter Zustand: Browseridentität und Cookies über Sitzungen hinweg wiederverwenden
-
Start URLs: Öffnen Sie beim Start eine oder mehrere Seiten, jede in einem eigenen Tab
-
Metadata: Versehen Sie eine Sitzung mit Ihrer eigenen Job-ID, um sie Ihren Logs zuzuordnen
Playwright-Läufe in einem Live-Browser debuggen
Wenn ein Skript auf einem Bildschirm stehen bleibt, den es nicht erwartet hat, etwa einem Consent-Banner oder einem zusätzlichen Login-Schritt, öffnen Sie eine Live-Ansicht der Sitzung in Ihrem eigenen Browser und sehen Sie genau, was die Seite zeigt.
Playwright und die Live-Ansicht nutzen eine Sitzung abwechselnd, sodass der Lauf dort weitergeht, wo er stehen geblieben ist, statt von vorn zu beginnen. Mehr über den UI-Modus
- 1 Erstellen Sie die Sitzung mit keepAlive: true, damit das Trennen sie nicht beendet.
- 2 Wenn ein Lauf auf einem unerwarteten Bildschirm stehen bleibt, trennen Sie Playwright.
- 3 Fordern Sie eine Live-Ansicht an und öffnen Sie sie: Sehen Sie sich die Seite an und erledigen Sie das Nötige von Hand.
- 4 Rufen Sie die Sitzung erneut ab und verbinden Sie Playwright mit der neuen connectUrl.
Kostenlos für Floppydata-Proxy-Nutzer
Cloud Browser hat keine Abo-, Laufzeit- oder Sitzungsgebühr. Jede Sitzung läuft über Floppydata-Proxys, und Sie zahlen nur für den Proxy-Traffic, den sie verbraucht: ab $1.00 pro GB, ein Preis für Residential, Mobil und Rechenzentrum.
Wenn Sie bereits Floppydata-Proxys kaufen, ist Cloud Browser inklusive: dasselbe Guthaben, derselbe API-Schlüssel. Führen Sie bis zu 100 Sitzungen gleichzeitig auf einem Konto aus oder bitten Sie den Support, das Limit anzuheben.
Häufige Verbindungsfehler bei Playwright in der Cloud
Was die API oder die Verbindung meldet, wenn etwas schiefgeht, und was dann zu tun ist.
| Fehler | Was es bedeutet | Was zu tun ist |
|---|---|---|
unauthorized | Die signierte connectUrl ist abgelaufen oder ungültig. | Rufen Sie die Sitzung erneut ab und verbinden Sie sich mit ihrer neuen connectUrl. |
connection_in_use | Ein anderer Client oder eine Live-Ansicht ist bereits verbunden: pro Sitzung ist nur eine Verbindung möglich. | Schließen Sie die andere Verbindung und versuchen Sie es erneut. |
session_not_active | Die Sitzung wurde beendet, ist abgelaufen oder fehlgeschlagen. | Erstellen Sie eine neue Sitzung; erhöhen Sie bei langen Jobs runtime.timeoutSeconds. |
| Verbindung wird geschlossen | Eine einzelne Nachricht war größer als etwa 1 MiB, zum Beispiel ein ganzseitiger Screenshot oder ein Screencast-Frame. | Machen Sie Screenshots des Viewports oder eines Elements oder schneiden Sie den benötigten Bereich zu. |
upstream_error | Ein Vorgang des Browserdienstes ist kurzzeitig fehlgeschlagen. | Erneut versuchen: Das Beenden einer Sitzung lässt sich gefahrlos wiederholen. |