browser
browser copied to clipboard
Playwright CDP connection fails with assertion error
When connecting to browser using Playwright's Python CDP interface, connection is immediately closed with an assert error. There might be an incompatibility between Playwright's CDP implementation and Lightpanda's CDP server response.
Environment
- macOS (Apple Silicon/arm64)
- version: nightly build (downloaded on 2025-01-17)
- playwright version 1.49.1
- python version: 3.11
Reproduce
Server side;
./lightpanda-aarch64-macos --host 127.0.0.1 --port 9222
Client side;
import asyncio
from playwright.async_api import async_playwright
async def capture_screenshot():
async with async_playwright() as p:
browser = await p.chromium.connect_over_cdp("ws://127.0.0.1:9222")
try:
context = await browser.new_context()
page = await context.new_page()
await page.goto('https://example.com')
screenshot_bytes = await page.screenshot()
return screenshot_bytes
finally:
await browser.close()
if __name__ == "__main__":
screenshot = asyncio.run(capture_screenshot())
Error output
~/.virtualenvs/lightpanda-browser-vbam/lib/python3.11/site-packages/playwright/driver/package/lib/utils/debug.js:29
if (!value) throw new Error(message || 'Assertion error');
^
Error: Assertion error
at assert (~/.virtualenvs/lightpanda-browser-vbam/lib/python3.11/site-packages/playwright/driver/package/lib/utils/debug.js:29:21)
at CRSession._onMessage (~/.virtualenvs/lightpanda-browser-vbam/lib/python3.11/site-packages/playwright/driver/package/lib/server/chromium/crConnection.js:157:25)
Server logs
info(websocket): starting blocking worker to listen on 127.0.0.1:9222
info(server): accepting new conn...
info(server): client connected
info(server): close cmd, closing conn...
info(server): accepting new conn...