Docs
Playwright

Playwright

Learn how to log your crashes in Buglesstack using Playwright.


Prerequisites

To get the most out of this guide, you’ll need to:

1. Wrap your code in a try…catch block.

try:
    # Your Playwright code ...
    page.goto('https://www.google.com/search?q=playwright')
    page.wait_for_selector('[name="q"]')
    page.close()
    browser.close()
except Exception as error:
    pass

2. Capture relevant error data

# Prepare buglesstack data
buglesstack_data = {
    'url': page.url, # Page URL
    'screenshot': page.screenshot(type='png', full_page=True), # Page screenshot
    'html': page.content(), # Page HTML
    'metadata': {}, # Any relevant metadata
    'message': str(error), # Error message
    'stack': traceback.format_exc() # Error stack
}

# Convert screenshot to base64
import base64
buglesstack_data['screenshot'] = base64.b64encode(buglesstack_data['screenshot']).decode('utf-8')

3. Send the error data to Buglesstack’s API

# Get your access token from https://app.buglesstack.com
ACCESS_TOKEN = 'HERE_YOUR_ACCESS_TOKEN'

# Send error to buglesstack
headers = {
    'Authorization': f'Bearer {ACCESS_TOKEN}',
    'Content-Type': 'application/json'
}
requests.post('https://app.buglesstack.com/api/v1/crashes', json=buglesstack_data, headers=headers)

4. Try it yourself

from playwright.sync_api import sync_playwright
import requests
import traceback

# Get your access token from https://app.buglesstack.com
ACCESS_TOKEN = 'HERE_YOUR_ACCESS_TOKEN'

with sync_playwright() as p:
    browser = p.chromium.launch()
    page = browser.new_page()
    try:
        page.goto('https://www.google.com/search?q=playwright')
        page.wait_for_selector('[name="q"]')
        page.close()
        browser.close()
    except Exception as error:
        # Prepare buglesstack data
        buglesstack_data = {
            'url': page.url,
            'screenshot': page.screenshot(type='png', full_page=True),
            'html': page.content(),
            'metadata': {},
            'message': str(error),
            'stack': traceback.format_exc()
        }
        # Convert screenshot to base64
        import base64
        buglesstack_data['screenshot'] = base64.b64encode(buglesstack_data['screenshot']).decode('utf-8')

        # Send error to buglesstack
        headers = {
            'Authorization': f'Bearer {ACCESS_TOKEN}',
            'Content-Type': 'application/json'
        }
        requests.post('https://app.buglesstack.com/api/v1/crashes', json=buglesstack_data, headers=headers)
        # Re-raise the error to propagate it
        raise error