Docs
Puppeteer

Puppeteer

Learn how to log your crashes in Buglesstack using Puppeteer.


Prerequisites

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

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

try {
    // Your Puppeteer code ...
	await page.goto('https://www.google.com/search?q=puppeteer');		
	await page.waitForSelector('[name="q"]');
    await page.close();
    await browser.close();
}
catch (error) {}

2. Capture relevant error data

// Prepare data for Buglesstack
const buglesstackData = {
    url: page.url(), // Page URL
    screenshot: await page.screenshot({ encoding: 'base64' }), // Page screenshot
    html: await page.content(), // Page HTML
    metadata: {}, // Any relevant metadata
    message: error.message, // Error message
    stack: error.stack // Error stack
};

3. Send the error data to Buglesstack’s API

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

// Send error to buglesstack
await axios.post('https://app.buglesstack.com/api/v1/crashes', buglesstackData, {
    headers: {
        Authorization: `Bearer ${ACCESS_TOKEN}`,
        'Content-Type': 'application/json'
    }
});

4. Try it yourself

import axios from 'axios';
import puppeteer from 'puppeteer';

const browser = await puppeteer.launch();
const page = await browser.newPage();

try {
	await page.goto('https://www.google.com/search?q=puppeteer');		
	await page.waitForSelector('[name="q"]');
    await page.close();
    await browser.close();
}
catch (error) {
	// Prepare buglesstack data
	const buglesstackData = {
		url: page.url(),
		screenshot: await page.screenshot({ encoding: 'base64' }),
		html: await page.content(),
		metadata: {},
		message: error.message,
		stack: error.stack
	};

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

	// Send error to buglesstack
	await axios.post('https://app.buglesstack.com/api/v1/crashes', buglesstackData, {
		headers: {
			Authorization: `Bearer ${ACCESS_TOKEN}`,
			'Content-Type': 'application/json'
		}
	});
		
	// Re-throw the error to propagate it
	throw error;
}