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

There is no single capture that preserves every part of a live web page. To save markup after JavaScript runs, use Chrome Headless --dump-dom. To bundle a page and resources, use Chrome’s MHTML extension API. To inspect requests, export a HAR; to keep layout and selected computed styles, capture a DevTools Protocol DOM snapshot; to preserve appearance, take a screenshot or PDF. Choose the artifact that matches what you need to inspect or keep.

A rendered DOM is not the original HTML response, a HAR is not an offline website, and a screenshot does not contain source code. When a task needs more than one kind of evidence, save more than one artifact.

Choose the right kind of capture

“Capture the rendered HTML, CSS, and JavaScript” can mean saving different layers of a page. Identify the output you need before choosing a tool:

Your goal Use What it preserves Important limit
Save the document structure after scripts run Chrome Headless --dump-dom or a browser page-content API A serialized DOM as the browser constructed it Does not promise to package linked resources or preserve JavaScript runtime state. Chrome Headless documentation
Bundle a page and its resources in one browser archive Chrome extension chrome.pageCapture.saveAsMHTML() An MHTML file that Chrome describes as encapsulating the page and its resources Chrome documents that MHTML can be loaded only from the file system and only in the main frame. Chrome pageCapture API
Find out what the browser requested DevTools Network HAR export Captured network requests in a portable JSON-based archive Not a self-contained rendered-page copy; sensitive headers are excluded from sanitized exports by default. Chrome Network reference
Inspect structure, layout, and selected styles programmatically Chrome DevTools Protocol DOMSnapshot.captureSnapshot A flattened DOM tree, layout data, and selected computed styles Structured protocol data rather than a ready-to-open web page. DOMSnapshot protocol reference
Keep a visual record Playwright screenshot or PDF A pixel image or print-oriented document PDF uses print CSS by default; emulate screen media first if screen styling is what you need. Playwright Page API

For a missing stylesheet or script, a useful debugging set is often a rendered DOM plus a HAR: the DOM shows what ended up in the document, while the HAR helps reveal whether resources were requested. Add a screenshot when appearance matters. No method listed here promises to extract every original source file, all runtime state, and visual appearance in one artifact.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Philips 24 Inch Computer Monitor FHD 100Hz VA VESA Flicker-Free, 241V8LB
  • CRISP CLARITY: This 23.8″ Philips V line monitor delivers crisp Full HD 1920x1080 visuals. Enjoy movies, shows and videos with remarkable detail
  • INCREDIBLE CONTRAST: The VA panel produces brighter whites and deeper blacks. You get true-to-life images and more gradients with 16.7 million colors
  • THE PERFECT VIEW: The 178/178 degree extra wide viewing angle prevents the shifting of colors when viewed from an offset angle, so you always get consistent colors
  • WORK SEAMLESSLY: This sleek monitor is virtually bezel-free on three sides, so the screen looks even bigger for the viewer. This minimalistic design also allows for seamless multi-monitor setups that enhance your workflow and boost productivity
  • A BETTER READING EXPERIENCE: For busy office workers, EasyRead mode provides a more paper-like experience for when viewing lengthy documents

Dump the rendered DOM with Chrome Headless

Chrome’s --dump-dom mode parses the response HTML, executes scripts that may modify the page, then serializes the resulting DOM. That makes it suitable when the question is “what markup did the browser have after scripts ran?” rather than “what bytes did the server return?” Chrome also documents a --timeout option for DOM, screenshot, and PDF capture.

  1. Install or locate a current Chrome executable on the machine where you will run the capture.
  2. Run the command below, replacing the URL with the page you want to inspect:
google-chrome --headless --dump-dom --timeout=10000 "https://example.com" > rendered.html

On systems where the executable is named differently, substitute its actual command name (for example, chrome or chromium). The command writes the serialized DOM to rendered.html. The timeout is a maximum wait, not proof that the site’s own asynchronous rendering has completed. Inspect the saved file and, for a known application, wait for a meaningful page condition rather than assuming a fixed delay guarantees readiness.

What the DOM dump includes—and omits

The output reflects document structure after page scripts have had an opportunity to change it. It is not a source-code bundle: linked CSS and JavaScript are not thereby embedded, and the dump does not preserve the live JavaScript runtime state. If you need the actual request and response trail, export a HAR as well. If you need a bundled browser page, use MHTML instead.

Save a Chrome page as a single-file MHTML archive

Chrome’s documented pageCapture extension API saves a tab as MHTML through chrome.pageCapture.saveAsMHTML(). This is the route to choose when the deliverable should be a browser-generated page-and-resource archive rather than a plain DOM serialization.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Philips 22 Inch Computer Monitor FHD 100Hz VA VESA Flicker-Free, 221V8LB
  • CRISP CLARITY: This 22 inch class (21.5″ viewable) Philips V line monitor delivers crisp Full HD 1920x1080 visuals. Enjoy movies, shows and videos with remarkable detail
  • 100HZ FAST REFRESH RATE: 100Hz brings your favorite movies and video games to life. Stream, binge, and play effortlessly
  • SMOOTH ACTION WITH ADAPTIVE-SYNC: Adaptive-Sync technology ensures fluid action sequences and rapid response time. Every frame will be rendered smoothly with crystal clarity and without stutter
  • INCREDIBLE CONTRAST: The VA panel produces brighter whites and deeper blacks. You get true-to-life images and more gradients with 16.7 million colors
  • THE PERFECT VIEW: The 178/178 degree extra wide viewing angle prevents the shifting of colors when viewed from an offset angle, so you always get consistent colors
  1. Create a Chrome extension and declare the pageCapture permission in its manifest.
  2. From the extension, call chrome.pageCapture.saveAsMHTML() for the tab you want to save.
  3. Save the resulting MHTML data as an .mhtml file and test it in the context where it will be used.

Chrome documents a security restriction: an MHTML file can be loaded only from the file system and only in the main frame. Do not treat it as ordinary standalone HTML or assume that a page using authentication, dynamic resources, or cross-origin frames will replay perfectly; the API documentation does not guarantee those outcomes for every site.

Export a HAR to investigate CSS and JavaScript requests

Use DevTools when you need to see which requests the browser made, including requests for scripts, stylesheets, images, and other resources.

  1. Open the target page in Chrome and open DevTools.
  2. Select the Network panel, then reload the page with recording active so the relevant session is captured.
  3. Use the Network panel’s HAR export option to save the captured request list.
  4. Open the HAR in a suitable viewer or inspect its JSON when diagnosing a failed or unexpected request.

Chrome’s default sanitized HAR export excludes sensitive headers such as Cookie, Set-Cookie, and Authorization. DevTools also supports an export containing sensitive data after you enable Allow to generate HAR with sensitive data in Network preferences and choose the corresponding export option. That file may contain credentials or session-related information. Inspect and protect it before sharing.

A HAR records network activity, not a complete rendered-page archive. Pair it with a DOM dump or screenshot if you need evidence of what the browser displayed or constructed.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
Dell 24 Monitor - SE2426H - 23.8-inch FHD (1920x1080) 144Hz 1ms Display, in-Plane Switching (IPS) Technology, AMD FreeSync™, TÜV 3-Star 2X HDMI, Tilt
  • Clear visuals. Fluid motion: A 144Hz refresh rate and 1ms MPRT deliver smooth, tear‑free motion across work, gaming, and streaming for clearer, more fluid viewing.
  • Eye comfort: TÜV Rheinland 3‑star* certification reduces harmful blue light while preserving stunning color quality without compromise. *TÜV Rheinland 3-star eye comfort certification.
  • Wide viewing angle: Get consistent views across a wide 178° /178° viewing angle.
  • In-Plane Switching (IPS): See excellent color accuracy and consistency across wide viewing angles with In-plane Switching (IPS) technology.
  • Ultra-thin bezels: Maximize your viewing experience with thin bezels.

Capture DOM structure and selected computed styles

For structured machine-readable output, investigate Chrome DevTools Protocol’s DOMSnapshot.captureSnapshot. The protocol describes a flattened document tree, layout information, and computed styles selected by the caller. Its documented coverage includes iframes, template contents, and imported documents; shadow DOM is flattened.

This is useful when a tool needs to analyze document structure and selected style properties rather than open a saved page or compare pixels. It is not a screenshot or a packaged offline page. Consult the DOMSnapshot protocol reference for the protocol parameters and returned data model before building a consumer around it.

Use Playwright when you need page content or visual output

Playwright’s Page API provides methods to read page content, take screenshots, and generate PDFs. The following Node.js example captures serialized page content and a screenshot. It waits for the page’s load event, but sites may continue changing content afterward, so adjust readiness to the page’s actual behavior.

import { chromium } from 'playwright';
import { writeFile } from 'node:fs/promises';

const browser = await chromium.launch({ headless: true });
const page = await browser.newPage();

try {
  await page.goto('https://example.com', { waitUntil: 'load', timeout: 30000 });
  const html = await page.content();
  await writeFile('rendered.html', html, 'utf8');
  await page.screenshot({ path: 'page.png', fullPage: true });
} finally {
  await browser.close();
}

Save this as an ES module, install Playwright in the project, and run it with Node.js. page.content() returns the page’s serialized HTML; the screenshot records appearance, not CSS or JavaScript source. If a site renders key content after the load event, wait for a selector or application-specific condition before collecting output. Do not assume that a generic network-idle or fixed delay is correct for every site.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
Samsung 27" Essential S3 (S36GD) Series FHD 1800R Curved Computer Monitor
  • CURVED FOR ENHANCED ENGAGEMENT: An immersive viewing experience with a curved monitor that wraps more closely around your field of vision; It creates a wider view, enhancing depth perception and minimizing peripheral distraction
  • SMOOTH PERFORMANCE FOR SEAMLESS CONTENT: Stay in the action when playing games, watching videos, or working on creative projects; The 100Hz refresh rate reduces lag and motion blur so you don't miss a thing in fast-paced moments¹
  • MORE GAMING POWER: Gain the edge with optimizable game settings; Color and image contrast can be adjusted to see scenes more vividly and spot enemies hiding in the dark; Game Mode adjusts any game to fill the screen so you can view every detail²
  • KEEP IT EASY ON THE EYES: Care for your eyes and stay comfortable, even during long sessions; Advanced eye comfort technology certified by TÜV reduces eye strain by minimizing blue light and reducing irritating screen flicker²
  • INCREASED VERSATILITY: Connect to more; Plug devices straight into your monitor for increased flexibility, making your computing environment even more convenient

Make PDF media intentional

Playwright’s page.pdf() uses print CSS by default. If you want a PDF styled for screen presentation, select screen media before creating it:

await page.emulateMedia({ media: 'screen' });
await page.pdf({ path: 'page.pdf' });

Leave print media in place when the intended result is a print-oriented document. A PDF is a visual/document artifact, not an export of the page’s source files.

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 visual capture rather than source markup, ScreenshotNeo can return a screenshot from one GET request. It is a website screenshot API and MCP server for developers. The code below saves a capture of the example URL; see the ScreenshotNeo API documentation for request options and response details.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp

ScreenshotNeo accepts cookie or consent banners like a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; those steps can each be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers identify the page verdict and billing status. Its MCP server offers take_screenshot, get_page_info, and capture_pdf for AI agents using Claude, Cursor, or another MCP client. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 screenshots. ScreenshotNeo produces visual output, not a rendered DOM or a HAR.

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

Sign up for ScreenshotNeo’s free plan: 1,000 screenshots a month, no card required.

Best Value
Sale
Sceptre New 22-Inch Gaming Monitor, FHD 1080p, Up to 144Hz, HDMI, DisplayPort, Built-in Speakers, Machine Black (E225W-FW144 Series, 2026)
  • 【INTEGRATED SPEAKERS】Whether you're at work or in the midst of an intense gaming session, our built-in speakers provide rich and seamless audio, all while keeping your desk clutter-free.
  • 【EASY ON THE EYES】 Protect your eyes and enhance your comfort with Blue-Light Shift technology. This feature reduces harmful blue light emissions from your screen, helping to alleviate eye strain during long hours of use and promoting healthier viewing habits.
  • 【WIDEN YOUR PERSPECTIVE】Our sleek minimal bezel design ensures undivided attention. The nearly bezel-free display seamlessly connects in a dual monitor arrangement, delivering an unobstructed view that lets you focus on more at once, completely distraction-free.

Troubleshoot common capture problems

The DOM dump is missing content

The page may populate after Chrome’s capture point. Increase the bounded timeout if appropriate, then inspect the output. A timeout does not establish that a site-specific render is complete; use an application condition when automating a page whose behavior you control or understand.

The HTML file does not look like the page

A DOM serialization is not a visual record and does not embed all linked CSS, resources, or runtime state. Capture a screenshot for appearance, an MHTML archive for a bundled browser page, or a HAR to investigate resource loading.

The HAR omits authentication headers

That is expected for the sanitized export. Enable DevTools’ sensitive-data preference and select the sensitive export only if the omitted headers are needed and the file can be handled securely.

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

The PDF styling differs from the browser window

Playwright PDF generation uses print CSS by default. Call page.emulateMedia({ media: 'screen' }) before page.pdf() when screen media is the desired styling.

The MHTML file will not load as a normal web page

Chrome documents that MHTML loading is restricted to the file system and the main frame. It is not interchangeable with a conventional HTML file hosted on a web server.

Choose a capture by the evidence you need

  • For markup after scripts have modified the page, use --dump-dom or Playwright page content.
  • For one browser archive containing a page and resources, use Chrome’s MHTML extension API and account for its loading restriction.
  • For requests and response investigation, export a HAR and protect sensitive exports.
  • For DOM plus selected layout and computed styles, use the DevTools Protocol snapshot.
  • For visual proof, take a screenshot or generate a PDF with the intended media type.

Frequently Asked Questions

Does a rendered DOM capture contain the JavaScript variables currently in memory?

No. A serialized DOM represents document structure; it is not a snapshot of the page’s full JavaScript runtime or application memory.

Can I use a screenshot as proof that a particular CSS file loaded?

A screenshot shows rendered pixels, not which network resource produced them. Use a HAR to investigate requests and the page’s visual output together when both matter.

Free tools Windows power users keep installed

One-click scans. No signup required.

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.