Skip to main content

Session Replay with BQL (Beta)

info

Session Replay is a Beta feature available for all users.

The Session Replay feature in BrowserQL allows you to record browser sessions and later replay them for debugging and analysis. When using BQL, session recording is controlled through connection parameters and provides seamless integration with GraphQL mutations.

This feature is particularly useful for:

  • Debugging complex BQL automation workflows
  • Creating visual documentation of GraphQL-based browser automation
  • Troubleshooting BQL mutations with recorded evidence

Prerequisites

Before using Session Replay with BQL, make sure you have:

  1. A Browserless account with Session Replay access
  2. A browserless API key
  3. Access to the BQL endpoint
  4. Understanding of GraphQL mutation syntax

Recording a Session with BQL

Connection String Configuration

To enable session recording with BQL, add the replay=true parameter to your connection string:

wss://production-sfo.browserless.io?token=YOUR_API_TOKEN_HERE&replay=true

Basic Recording Example

mutation RecordSession {
goto(url: "https://www.example.com") {
status
time
}

click(selector: "button.example") {
time
x
y
}

type(selector: "input[name='search']", text: "browserless") {
time
}

waitForSelector(selector: ".search-results") {
time
}
}

Advanced Recording with Session Management

For more complex workflows, combine session recording with BQL session management:

mutation AdvancedRecording {
goto(url: "https://app.example.com/login") {
status
time
}

type(selector: "#username", text: "user@example.com") {
time
}

type(selector: "#password", text: "password123") {
time
}

click(selector: "#login-button") {
time
x
y
}

waitForSelector(selector: ".dashboard") {
time
}

# Navigate through multiple pages
click(selector: ".nav-reports") {
time
}

waitForSelector(selector: ".reports-table") {
time
}

# Extract data for verification
querySelector(selector: ".user-profile .name") {
text
}
}