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:
- Get your access token from https://app.buglesstack.com
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;
}