Skip to content

Playwright

Playwright connects to rayobrowse via CDP using connect_over_cdp() / connectOverCDP(). First call the HTTP /connect endpoint to get a CDP WebSocket URL, then pass that URL to Playwright.

import httpx
from playwright.sync_api import sync_playwright
resp = httpx.get(
"http://localhost:9222/connect",
params={"headless": "false", "os": "windows"},
timeout=120,
)
resp.raise_for_status()
cdp_url = resp.text.strip()
with sync_playwright() as p:
browser = p.chromium.connect_over_cdp(cdp_url)
context = browser.contexts[0] if browser.contexts else browser.new_context()
page = context.pages[0] if context.pages else context.new_page()
page.goto("https://example.com")
print(page.title())
browser.close()
from rayobrowse import Rayobrowse
from playwright.sync_api import sync_playwright
client = Rayobrowse()
ws_url = client.connect_url(os="windows", headless=False)
with sync_playwright() as p:
browser = p.chromium.connect_over_cdp(ws_url)
page = browser.new_page()
page.goto("https://example.com")
print(page.title())
browser.close()
resp = httpx.get(
"http://localhost:9222/connect",
params={
"headless": "true",
"os": "windows",
"proxy": "http://user:pass@host:port",
},
timeout=120,
)
cdp_url = resp.text.strip()
browser = p.chromium.connect_over_cdp(cdp_url)