110 / 168 · 01 Agent Skills for Browser Automation · WebDriver BiDi Protocol Overview← prev⊞ allnext →☰ Read as one page
15.2Message Format
All communication is JSON over WebSocket.
Client → Browser (Commands)
{
"id": 1,
"method": "browsingContext.navigate",
"params": {
"context": "context-id-123",
"url": "https://example.com",
"wait": "complete"
}
}
Browser → Client (Responses)
{
"id": 1,
"type": "success",
"result": {
"navigation": "nav-id-456",
"url": "https://example.com"
}
}
Browser → Client (Events — Unsolicited)
{
"method": "log.entryAdded",
"params": {
"level": "error",
"text": "Uncaught TypeError: Cannot read property 'foo' of undefined",
"timestamp": 1707500000000
}
}
Events are pushed by the browser without the client asking — this is the "bidirectional" part.