Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan NowHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk5 min

How to Convert a Web App Page to PDF After Logging In with Puppeteer

A practical guide to logging in with Puppeteer, checking protected-page readiness, and exporting a PDF with the right print options.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use Puppeteer to complete the web app’s normal login flow, verify that the protected page has loaded, then save it with page.pdf(). page.authenticate() is for HTTP authentication, not a substitute for filling in an application’s login form.

Log in using the method the web app supports

Authentication is specific to the application. Choose the method that matches its design, then confirm you have reached the intended signed-in page before creating a PDF.

As an Amazon Associate I earn from qualifying purchases.

For an application login form

Open the login page, fill its actual fields, submit the form, and wait for a reliable sign of success. The selectors and success condition below are examples only: replace them with the controls and behavior used by your app.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
import puppeteer from 'puppeteer';

const browser = await puppeteer.launch();
try {
  const page = await browser.newPage();
  await page.goto('https://app.example.com/login', {
    waitUntil: 'domcontentloaded',
  });

  await page.locator('input[name="username"]').fill(process.env.APP_USERNAME);
  await page.locator('input[name="password"]').fill(process.env.APP_PASSWORD);

  await Promise.all([
    page.waitForNavigation(),
    page.locator('button[type="submit"]').click(),
  ]);

  // Replace with the protected page and an app-specific readiness check.
  await page.goto('https://app.example.com/report', {
    waitUntil: 'networkidle2',
  });
  await page.locator('[data-testid="report-content"]').wait();

  await page.pdf({
    path: 'report.pdf',
    format: 'A4',
    printBackground: true,
  });
} finally {
  await browser.close();
}

The navigation wait shown is suitable only when submitting the form causes a navigation. Single-page apps may update the page without one; in that case wait for an app-specific element or other condition instead. Puppeteer’s PDF guide demonstrates saving a page with page.pdf(): PDF generation.

#1 Best Overall
Sale
Logitech Brio 101 Full HD 1080p Webcam for Streaming and Meetings - Black | 1080p with auto-light correction, built-in mic, privacy shutter, USB-A, compatible with Teams, Google Meet, Zoom and more
  • Compatible with Nintendo Switch 2’s new GameChat mode
  • Auto-Light Balance: RightLight boosts brightness by up to 50%, reducing shadows so you look your best—compared to previous-generation Logitech webcams (1)
  • Privacy with a Slide: The integrated webcam cover makes it easy to get total, reliable privacy when you're not on a video call
  • Built-In Mic: The built-in microphone lets others hear you clearly during video calls
  • Easy Plug-And-Play: The Brio 101 works with most video calling platforms, including Microsoft Teams, Zoom and Google Meet—no hassle; it just works

For HTTP authentication

Use page.authenticate() when the site challenges the browser with HTTP authentication, such as Basic or Digest authentication. It does not fill or submit a web app’s login form. Puppeteer documents that calling it enables request interception, which can affect performance: Page.authenticate().

await page.authenticate({
  username: process.env.HTTP_USERNAME,
  password: process.env.HTTP_PASSWORD,
});
await page.goto('https://protected.example.com/report');

For an existing cookie session

Puppeteer supports reading, setting, and deleting cookies, including storing and restoring cookies for tests. Browser-level setCookie() writes cookies to the default browser context. This works only if the target app accepts the cookies as a valid session; domain, path, expiry, secure attributes, and any other session requirements still matter. See the Cookies guide and Browser.setCookie().

Verify the protected page before exporting

A successful login submission does not prove that the report is authenticated or fully rendered. Check a site-specific indicator or expected content before calling page.pdf(). If the browser was redirected to the login page, received an error page, or is showing an empty application shell, resolve that first. The right condition depends on the app; the PDF example in Puppeteer’s guide does not test authenticated sites.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Sale
EMEET S600 4K Webcam for Streaming, Sony 1/2.55'' Sensor, PDAF Autofocus | 1080P@60FPS, 2 Noise Reduction Mics, Built-in Privacy Cover, 73° FOV, Streaming Camera for Live Commerce/Gaming/Beauty
  • Unmatched 4K Streaming Quality - The EMEET S600 streaming camera boasts a high-definition 4K sony 1/2.55'' sensor, delivering crisp, clear images far exceeding typical webcam quality. With versatile resolution options, enjoy stunning 4K at 30FPS or smooth 1080P at 60FPS. Ideal for aspiring streamers, game streaming, and content creation, this 4K webcam ensures exceptional experience for you and your audience. Note: Video resolution depends on built-in camera software or apps like PotPlayer/OBS.
  • Advanced PDAF Autofocus & Light Balance – 4K webcam S600's PDAF(Phase Detection Autofocus) tech offers significant advantages over common autofocus such as faster speed, higher precision, and more stable performance in various scenes features. Its auto light adjustment capability balances shadows and highlights even in low-light environments, keeping every detail sharp and clear on screen, making it ideal for content creators and live streamers who demand top-tier performance and visual quality.
  • Enhanced Audio Clarity & Customizable FOV - The EMEET S600 4K streaming webcam is equipped with premium microphones that use a proprietary algorithm to filter out background noise and capture your voice with exceptional clarity. Noise-canceling feature is enabled by default but can be turned off through the EMEETLINK software. At 1080P, the FOV adjusts 40°-73°, allowing you to focus on you and surroundings, while at 4K, it’s fixed at 73° for better image quality and less distortion.
  • Integrated Privacy Cover & Rugged Design - The 4K webcam for streaming boasts a built-in privacy cover right on the lens, ensuring it won't accidentally open or get touched. Crafted with meticulous engineering, every component of the S600, from the clips to the joints, is designed for durability and stability. Unlike traditional 4K streaming cameras, S600 webcam for PC offers flexible rotation and wide-angle tilting while staying securely in place, making it easier to find your ideal angle.
  • Effortless Setup with Customization Option - S600 2.0&3.0 USB webcam offers a seamless plug-and-play experience, compatible with nearly all popular operating systems and software, no extra software required for use. Just plug it in, and you’re ready to go, making it an easy addition to your workflow. For those looking to fine-tune image parameters or enhance sound quality, EMEETLINK software is available for advanced customization. Both simplicity and advanced needs can be met effortlessly.

For client-rendered content, wait for a selector that appears only when the report is ready. A generic network-idle condition may not be sufficient for apps with ongoing requests, delayed data, or content loaded after the initial page response.

Generate the PDF and choose print settings

page.pdf() writes the PDF to the supplied path. The path may be relative to the process’s current working directory or absolute. The API’s documented defaults and key choices are:

Option What it controls Documented behavior
path Output file location A relative path resolves against the current working directory.
format Paper format Default is letter; when supplied, it takes precedence over width and height.
margin Page margins No margins are set if omitted.
printBackground Background graphics Default is false; set true to include backgrounds.
pageRanges Pages to include Default is all pages; ranges can be specified, for example 1-5, 8.
preferCSSPageSize Whether CSS @page controls paper size Default is false; without it, content is scaled to fit the configured paper.
waitForFonts Font readiness before output Default is true.
timeout PDF generation timeout Default is 30,000 ms; 0 disables the timeout.

These values are documented in Puppeteer’s PDFOptions interface. For example, add margins or limit the exported pages like this:

Rank #3
Logitech C920x HD Pro PC Webcam Full 1080p/30fps Video - Black | 30fps Video, Clear Audio, Light Correction, Works with Teams, Meet, Zoom, Nintendo Switch 2, Mac, Tablet
  • Compatible with Nintendo Switch 2’s new GameChat mode
  • HD lighting adjustment and autofocus: The Logitech webcam automatically fine-tunes the lighting, producing bright, razor-sharp images even in low-light settings. This makes it a great webcam for streaming and an ideal web camera for laptop use
  • Advanced capture software: Easily create and share video content with this Logitech camera that is suitable for use as a desktop computer camera or a monitor webcam
  • Stereo audio with dual mics: Capture natural sound during calls and recorded videos with this 1080p webcam, great as a video conference camera or a computer webcam
  • Full HD 1080p video calling and recording at 30 fps. You'll make a strong impression with this PC webcam that features crisp, clearly detailed, and vibrantly colored video
await page.pdf({
  path: 'report.pdf',
  format: 'A4',
  margin: { top: '12mm', right: '12mm', bottom: '12mm', left: '12mm' },
  printBackground: true,
  pageRanges: '1-5',
  preferCSSPageSize: true,
});

Puppeteer renders PDFs with print CSS media by default. To use screen styles instead, call page.emulateMediaType('screen') before page.pdf(). Print rendering can also modify colors; CSS -webkit-print-color-adjust can request exact colors. See the Page API.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Handle common failures

  • The PDF contains the login screen: The session may not have been established, or navigation may have redirected. Check the final URL and an app-specific signed-in indicator before export.
  • The submit step times out waiting for navigation: The app may use client-side routing rather than a full navigation. Wait for a post-login selector or another app-specific readiness condition instead.
  • The PDF is blank or missing report data: The page may not have finished rendering its data. Wait for the report’s content selector rather than relying only on the initial document load.
  • Background colors or images are missing: Set printBackground: true; its documented default is false.
  • The output has unexpected page size or scaling: Check format, width and height, margins, and preferCSSPageSize. CSS @page size is not preferred by default.
  • Colors differ from the browser view: PDF generation uses print media by default and printing modifies colors. Use screen media if that is the desired layout, or request exact colors with CSS -webkit-print-color-adjust.
  • HTTP credentials do not sign in to the app: page.authenticate() handles HTTP authentication and is not a general web-form login helper.

Security and operational considerations

Use credentials supplied through the runtime environment, as in the example, rather than embedding them in source code. Do not print credentials to logs or persist session cookies insecurely. The Puppeteer APIs document browser authentication and cookie handling, but they do not define a security procedure for every application.

For repeatable exports, make the readiness check specific to the content being captured and choose output settings deliberately. HTTP authentication activates request interception according to Puppeteer’s documentation, so account for that if the page makes many requests or timing matters.

Rank #4
NexiGo N680E Pro 4K Webcam with Ring Light, PDAF Autofocus, 1080p 60FPS, Dual Noise-Canceling Mics, Privacy Shutter, USB Plug-and-Play for Zoom, Teams, Twitch, Google Meet
  • 【Unmatched 4K Streaming Quality】The NexiGo N680E Pro has a Sony 1/2.5" 4K sensor for ultra-sharp, true-to-life video beyond standard webcams. Stream smoothly at 1080p 60 fps. Its premium coated lens boosts light transmission and reduces reflections for clearer, more vibrant images. Perfect for content creators and live streamers seeking top-tier performance. Note: Output resolution depends on your camera software (e.g., OBS, PotPlayer).
  • 【PDAF Autofocus & Enhanced Audio Clarity】Keep your audience engaged with advanced PDAF autofocus, delivering faster focusing speed, higher precision, and greater stability than traditional AF systems, no matter how you move. Dual noise-reducing microphones capture your voice clearly by filtering out background noise, ensuring clean, distraction-free conversations and streaming.
  • 【Tri-Tone Adjustable Ring Light】The built-in ring light offers three color temperature modes with a simple touch and stepless brightness control by rotating the outer dial. Brighter than typical webcam lights, the N680E Pro provides soft, glare-free illumination so you can easily achieve the perfect lighting for any space.
  • 【Built-in Privacy Shutter】With a simple USB-A plug-and-play connection, this streaming camera works instantly—no drivers, apps, WiFi, or Bluetooth required. The built-in privacy shutter blocks the lens completely to prevent potential hacking or unwanted access, giving you full control over your privacy at all times.
  • 【Widely Compatible】The NexiGo webcam works with Switch 2 (Please use with your own USB-C to USB-A adapter), Windows 7–11, Mac OS 10.6+, and Chrome OS 29+, supporting all major video conferencing and streaming platforms like Zoom, Teams, Skype, and more. Its flexible clip and 80° FOV allow smooth rotation and wide-angle tilting while staying secure, making it easy to find your ideal angle. A standard 1/4" tripod mount ensures stable setup. Ideal for conferencing, gaming, streaming, recording, and online learning.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup

If you need a screenshot rather than a PDF, ScreenshotNeo offers a single-request website screenshot API. It does not replace Puppeteer for logging into an arbitrary protected web app; use the app’s supported authentication flow for pages that require a session.

For an accessible page, a cURL request can save an image directly:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

See the ScreenshotNeo documentation for request details. ScreenshotNeo removes cookie banners, newsletter popups, and chat widgets before capture; bot checks, blank pages, and failed loads are never billed. Its MCP server lets AI agents take screenshots. The Free plan includes 1,000 screenshots per month with no card, and paid plans start at $5 for 3,000 shots. Sign up for free and get 1,000 screenshots a month with no card.

Frequently Asked Questions

Which Puppeteer method creates the PDF?

Use page.pdf() after the page is authenticated and ready.

Best Value
Sale
EMEET C960 1080P Webcam with Microphone, 2 Mics, 90° FOV, Computer Camera | USB Type-A & A-to-C Adapter, Fixed Focus, Plug&Play for Zoom/Teams/Facetime/YouTube/Google Meet/Switch 2 Camera, 2025 Version
  • 1080P Webcam with Cover for Video Calls - EMEET computer webcam provides design and Optimization for professional video streaming. Realistic 1920 x 1080p video, 5-layer anti-glare lens, providing smooth video. C960 computer camera delivers 1920x1080 video with fixed focus (11.8–118.1 inches), so as to provide a clearer image. C960 USB webcam has a cover and can be removed automatically to meet your needs for privacy. For optimal image performance, use the webcam in a well-lit environment.
  • Built-in 2 Omnidirectional Mics - EMEET webcam with microphone for desktop features 2 built-in omnidirectional microphones, picking up your voice to create clear audio for communication. When installing the webcam, select EMEET C960 as the default microphone input device in your computer and video applications and select C960 as the default device in Zoom/Teams and ensure microphone permissions are enabled for proper use. Please note that C960 does not include built-in speakers.
  • Automatic Light Adjustment - Automatic exposure adjustment is applied in EMEET HD webcam 1080p so that the streaming webcam can deliver stable image performance. EMEET C960 camera for computer also features color adjustment and exposure optimization to help you look your best. For optimal video quality, it is recommended to use the webcam in normal or well-lit environments and select suitable video settings in your application. Proper lighting helps achieve a clearer and more balanced image.
  • Plug-and-Play & Upgraded USB Connectivity - New C960 webcam features both USB Type-A & A-to-C adapter connections for wider compatibility. For stable performance, connect the webcam directly to the computer's main USB port and ensure the device is recognized correctly. If a hub or docking station is used, please ensure it provides sufficient power and stable data transmission, as limited ports may affect performance. 90° wide-angle lens captures more participants without frequent adjustments.
  • High Compatibility & Multi Application - C960 webcam for laptop is compatible with Windows 10/11, macOS 10.14+, and Android TV 7.0+. Not supported: Windows Hello, TVs, tablets, or game consoles. It works with Zoom, Teams, Facetime, Google Meet, YouTube and more. Please select C960 webcam as the default camera and microphone device in your application and ensure camera/microphone permissions are enabled, especially on macOS. (Tips: Incompatible with Windows Hello)

Does page.authenticate() log into any website?

No. It is for HTTP authentication, not submitting an application’s web login form.

Can I export a web app that uses MFA or an SSO popup?

Possibly, but the login steps and readiness checks must match that app; the illustrative form-login code does not cover MFA or SSO.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.