Generating PDFs with Puppeteer's page.pdf() Method
Learn how to use Puppeteer's page.pdf() to create a PDF from a URL, set options, verify the output, and recover from common failures.
ReadMeFeed / Community knowledge
Real questions. Useful conversations. Find the people who know your stack.
Learn how to use Puppeteer's page.pdf() to create a PDF from a URL, set options, verify the output, and recover from common failures.
Learn how to use Puppeteer's Page.pdf() to create professional documents by leveraging @media print CSS, managing network idle states, and configuring background rendering.
Learn how to diagnose and fix 'Navigation timeout exceeded' errors in Puppeteer by adjusting waitUntil strategies and navigation timeout settings.
Learn how to use Puppeteer's request interception to block images, fonts, and trackers, significantly reducing page load times and resource consumption during automation.
Stop relying on unstable CSS selectors. Learn how to use Puppeteer's network interception and waitForResponse to capture raw JSON data directly from APIs for more robust automation.
Deploying Puppeteer in Linux-based containers using headless: "new" can result in browser initialization failures that do not throw explicit JavaScript exceptions. While the browser.on('disconnected') event captures stdout and stderr, logs are frequently truncated when the process is terminated by system-level signals, such as an Out-of-Memory (OOM) killer.
Learn how to diagnose and fix 'TimeoutError: Navigation timeout exceeded' in Puppeteer by optimizing waitUntil states and timeout settings.
Puppeteer manages the browser lifecycle via the puppeteer.launch() method, which by default relies on a bundled Chromium binary compatible with the installed library version. In environments where the system-installed browser is updated independently of the Puppeteer package, a version mismatch can prevent the browser from initializing. While the executableP
I'm designing a scraping service that reuses a single Puppeteer browser instance (Chromium, recent stable version) and opens multiple pages to run page.goto() calls concurrently. Under low concurrency the behavior is fine, but as the number of simultaneous navigations grows, average navigation latency climbs well beyond the single-request baseline. My unders