Browser Render
Überwachen Sie JS-gerenderte Seiten mit deterministischen Wait-Strategien und Diffs des gerenderten DOMs, wenn ein einfacher Fetch nicht ausreicht.
Browser Render
Browser Render ist für Seiten gedacht, bei denen simple_fetch sinnvolle Änderungen verpasst, weil der DOM clientseitig aufgebaut wird.
Planverfügbarkeit: Pro und höher.
Wann Sie es einsetzen sollten
- SPA-Routen, bei denen Inhalte erst nach JavaScript-Ausführung erscheinen.
- Seiten mit Framework-Hydration, bei denen das Quell-HTML unvollständig ist.
- Ziele, bei denen simple fetch instabile oder nur teilweise Evidenz liefert.
Wie es funktioniert
- Laden Sie die Seite in einem isolierten Browser Context.
- Warten Sie mit deterministischen Bedingungen.
- Serialisieren Sie den gerenderten DOM.
- Wenden Sie Ignore-Regeln an und berechnen Sie Diffs.
So bleiben die Ergebnisse über mehrere Läufe reproduzierbar und das Signal trotzdem hochwertig.
Voraussetzungen
Browser Render wird nur verwendet, wenn alle folgenden Bedingungen erfüllt sind:
- Ihr Runtime-Capability-Execution-Mode ist browser-enabled.
targetTypeisturl.- Der Fetch Mode des Monitors ist
content.
Wenn eine Regel nicht erfüllt ist, fällt DiffMon auf simple_fetch zurück und protokolliert den Grund.
Quickstart
- Erstellen oder aktualisieren Sie einen URL-Monitor.
- Fügen Sie
browserOptionsfür Wait-Strategie und Viewport hinzu. - Starten Sie bei SPAs mit
wait_until: "networkidle". - Ergänzen Sie
wait_for_selector, wenn die Seite ein klares "ready"-Element hat. - Halten Sie
ignoreSelectorsauf volatile UI-Bereiche fokussiert.
App-UI (keine API erforderlich)
Sie können Browser Render direkt in der App konfigurieren:
- Öffnen Sie New monitor (
/app/monitors/new) oder die Einstellungen eines bestehenden Monitors. - Setzen Sie den Monitortyp auf URL.
- Lassen Sie in den Request-Einstellungen den Fetch Mode auf Content.
- Aktivieren Sie Use Browser Render (JavaScript/SPA).
- Stellen Sie Viewport und Wait-Strategie ein (
wait_until, optionaler Selector, optionale Verzögerung). - Speichern Sie die Einstellungen oder erstellen Sie den Monitor.
Wenn Ihr Plan Browser Render nicht enthält, wird der Toggle gesperrt mit einem Upgrade-Hinweis angezeigt.
Sandbox Preview
Sandbox Preview unterstützt Browser Render unter derselben Capability Gate:
- Pro+-Pläne können die Sandbox im Browser-Modus ausführen.
- Free/Hobby-Pläne erhalten
FEATURE_LOCKEDfür Browser-Preview-Anfragen. - Die Browser-Sandbox wendet SSRF-/Resource-Policy-Prüfungen und Browser-Wait-Einstellungen an.
- Sandbox-Läufe werden unabhängig von Monitor-Läufen gemessen und rate-limitiert.
API-v1-Felder
Verwenden Sie bei Create-/Update-Anfragen browserOptions:
viewport:{ width, height }wait.wait_until:load | domcontentloaded | networkidlewait.wait_for_selector: CSS-Selectorwait.wait_delay_ms: feste Settling-Verzögerung (max.5000)navigationTimeoutMstotalRunTimeoutMs
In Monitor-Antworten wird der gespeicherte Wert als browserOptionsJson zurückgegeben.
- Unbekannte Keys werden in Public API v1 abgelehnt.
- Browser Options sind nur für
targetType="url"mit Content-Checks gültig. - Options werden gespeichert, die Ausführung hängt aber weiterhin von Runtime-Entitlements und Eligibility ab.
viewporterfordert bei Angabe sowohlwidthals auchheight.
API-Beispiele
Einen Monitor mit Browser-Render-Optionen erstellen:
{
"name": "Pricing Page",
"targetType": "url",
"targetUrl": "https://example.com/pricing",
"checkIntervalMinutes": 5,
"selectSelectors": "#app",
"ignoreSelectors": ".timestamp\n.tracking-id",
"browserOptions": {
"viewport": { "width": 1280, "height": 720 },
"wait": {
"wait_until": "networkidle",
"wait_for_selector": "#app .pricing-table",
"wait_delay_ms": 250
},
"navigationTimeoutMs": 20000,
"totalRunTimeoutMs": 30000
}
}Nur die Wait-Strategie patchen:
{
"browserOptions": {
"wait": {
"wait_until": "domcontentloaded",
"wait_delay_ms": 100
}
}
}Troubleshooting
BROWSER_WAIT_CONDITION_FAILED: Der Selector erschien nicht vor dem Timeout.BROWSER_NAVIGATION_TIMEOUT: Die Seite hat die Navigation nicht rechtzeitig abgeschlossen.BROWSER_POLICY_BLOCKED: Die Anfrage wurde durch SSRF-/Protocol-Policy blockiert.BROWSER_CONTENT_TOO_LARGE: Das serialisierte HTML hat das Capture-Limit überschritten.
Best Practices
- Starten Sie bei statischen Seiten mit
simple_fetch. - Wechseln Sie nur bei Routen auf Browser Render, die es wirklich benötigen.
- Halten Sie Ignore-Regeln auf bekannte volatile Bereiche fokussiert.
- Kombinieren Sie Browser Render mit Webhook-Routing für Incident-Automation.