Screenshots: await page.screenshot({ path: 'screenshot.png', fullPage: true });
Data extraction: const data = await page.evaluate(() => { return Array.from(document.querySelectorAll('.item')).map(el => el.textContent); }); </patterns>
<practices> Use explicit waits (waitForSelector, waitForNavigation) over timeouts. Handle popups with page.on('popup'). Use headless: false for debugging. Capture screenshots on failure. Close browser in finally block. </practices> <debugging> Run with headless: false to see browser. Use page.pause() for step-by-step. Check page.on('console') for JavaScript errors. </debugging>