const puppeteer = require('puppeteer') async function main() { const browser = await puppeteer.launch({ headless: true, args: [ '--no-sandbox', '--disable-frame-rate-limit', ], }) try { for (let i = 0; i < 100; i++) { console.log(`Test #${i}`) const page = await browser.newPage() await page.evaluate(() => (document.body.textContent = 'Hello, World!')) console.log('Take screenshot.') const result = await Promise.race([ page.screenshot({type: 'png'}), new Promise(r => setTimeout(r, 10_000)), ]) if (!result) throw new Error(`Chromium is hung`) console.log('Screenshot successful.') } } catch (err) { console.error(err) } finally { await browser.close() } } main()