Puppeteer PDF: Margins, Fonts, and Page Breaks
Generate Puppeteer PDFs with explicit page settings, print CSS, reliable page breaks, and a practical checklist for missing Chinese glyphs.
Topic Archive
38 articles in Getting Started
Browse other topics
This article lives in the editorial library. For step-by-step setup, reference material, and ongoing updates, jump into the docs section.
Category overview
This archive groups 38 articles on Getting Started. Use it to move from editorial reads into practical BotBrowser guidance, then continue in Getting Started.
Common tags in this topic
Articles
38
Latest update
Nov 11, 2026
Docs section
Getting Started
Three strong reads to understand this topic before diving into the full archive.
Diagnose Playwright proxy routing, context exclusions and SOCKS5 authentication, then separate two real exit addresses from unchanged browser profile signals.
Fix a Playwright strict mode violation by inspecting duplicate matches, narrowing the intended component and verifying the result. Includes a runnable failure fixture.
Additional guides from this topic archive.
Generate Puppeteer PDFs with explicit page settings, print CSS, reliable page breaks, and a practical checklist for missing Chinese glyphs.
Diagnose Puppeteer proxy authentication and SOCKS5 failures, then compare two authorized exits against the same profile, timezone, language and canvas output.
Fix Selenium element not interactable by checking the command, hidden duplicates, frame, control state and click obstruction. Includes a local Python fixture.
Diagnose Selenium shadow DOM lookup failures with a local Python fixture: document boundaries, nested roots, closed roots and component replacement.
page.addInitScript and context.addInitScript have no defined evaluation order. See what that does to a patched fingerprint, and how to prove which write won.
Selenium headless Chrome differs from headed in ways a page can read. The ChromeOptions that matter, the default window size, and why headless is easier to single out.
Web scraping a JavaScript site returns no data: decide whether it is a selector bug, an XHR you could call directly, or a page that needs rendering, then page and scroll.
Choose a browser for authorized web scraping with six workload-based measures for correctness, state, cost, concurrency, observability, and maintenance.
Compare agent and MCP browser launch ownership, what tools expose, what operators must verify, and how headless differs from runtime limits.
Compare headed Chrome, unified headless, and headless shell for scraping. Track renderer, viewport, and webdriver signals without claiming a site verdict.
Configure Playwright for an authorized list-to-detail scraping run. Separate browser profiles, cookies and extraction errors, then save a useful JSON result.
Map Puppeteer launch, viewport, storage, and headless options to page-visible observations in an owned scraping fixture.
A practical approach to launching browser profiles with Selenium, keeping storage isolated, and closing sessions cleanly in authorized tests.
Build a bounded Selenium scraping run with an explicit Chromium binary, a capability receipt, a readiness condition, and validated catalogue records.
Choose Selenium waits from observable browser contracts so authorized tests remain readable, diagnosable, and stable across ordinary timing changes.
Compare undetected-chromedriver with browser-layer configuration by ownership, update surface, and the evidence an authorized fixture can record.
Configure browser-use with an explicit Chromium executable and profile, verify the launch, and keep human approval around consequential browser actions.
Order install, profile launch, context isolation, and evidence into one repeatable first browser automation run, without claiming a test you did not perform.
Avoid the Puppeteer mistakes that break BotBrowser profile consistency, including defaultViewport overrides, bundled Chromium, and browser-level CDP session mix-ups.
Build browser automation tests that check keyboard access, semantic names, focus, announcements, and inclusive failure states.
Copy-paste BotBrowser launch recipes, from a minimal headless start to proxy and multi-instance setups, with notes on how CLI flags override profile values.
Understand WebDriver BiDi sessions, events, transport, and bounded assertions for maintainable browser automation.
Design deterministic BrowserContext lifecycles, isolated storage state, and honest cleanup boundaries for authorized browser tests.
Use Playwright traces to diagnose authorized browser tests while controlling capture scope, sensitive contents, sharing, and retention.
Turn a browser failure into a useful, privacy-safe report with expected behavior, minimal reproduction steps, and environment facts.
Write browser test reports that separate expected behavior, observed evidence, uncertainty, privacy boundaries, and product action.
Separate browser, application, profile, platform, and data changes before assigning cause or choosing a rollback.
Make browser file transfers reliable with owned fixtures, explicit completion checks, isolated artifacts, and privacy-aware cleanup.
Use controlled network doubles to make authorized browser tests deterministic while keeping production and third-party boundaries explicit.
Plan browser and driver updates with explicit pins, compatibility evidence, rollback criteria, and bounded failure handling.
Design browser automation fixtures with clear ownership, isolated state, safe parallel workers, and deterministic cleanup.
Learn who owns Puppeteer browsers, contexts, pages, popups, timeouts, and cleanup so authorized tests finish without leaking resources.
Decide when to enable per-context CDP mouse hover coalescing, validate the visible result, and keep click, drag, wheel, keyboard, touch, and pen input on their normal paths.
Enable browser page translation with your own Google Cloud key while keeping privacy, profile consistency, and cost controls explicit.
Proxy launcher for BotBrowser: one egress route per profile, exit IP checked before launch, memory and version settings kept per session.
Manage BotBrowser profiles with clear ownership, release compatibility, controlled changes, and repeatable privacy validation.
Load a profile, keep the signals you just read about consistent inside the browser, and confirm the result on your own machine before a rollout.