Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
Skip to content
Automation

How to Capture Screenshots of Every Element on a Webpage

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

“Every element” can mean two different jobs: capturing the entire scrollable document, including content below the fold, or saving an image of one DOM element such as a header, form, card, or modal. Firefox Developer Tools handles either job without code; Playwright adds repeatable automation and precise element selection. This guide shows both workflows, then an API option for production captures.

Choose the kind of screenshot you need

Goal Best method Result
Entire page Firefox full-page capture or Playwright fullPage: true One image containing the full scrollable page
One element and its descendants Firefox “Screenshot Node” or a Playwright locator A tightly cropped image of the selected DOM node
Many URLs or scheduled captures Playwright script or ScreenshotNeo API Repeatable, server-side files or responses

A full-page screenshot is not merely a larger viewport. Playwright describes it as a screenshot of the full scrollable page, as if the page could fit on a very tall screen. An element screenshot instead uses the element’s rendered bounds, so it is useful for components, regression tests, documentation, and design review.

Capture the entire page in Firefox without code

  1. Open the page you want to capture.
  2. Open Firefox Developer Tools with F12 or Ctrl/Cmd+Shift+I.
  3. Open Developer Tools settings (the gear icon).
  4. In Available Toolbox Buttons, enable Take a screenshot of the entire page.
  5. Close settings, then click the new screenshot button in the Developer Tools toolbar.
  6. Firefox saves the capture to your Downloads folder by default.

This method captures the document beyond the visible viewport. Very long pages can create large image files; if the result is unwieldy, capture a specific section or use an image editor to divide it.

Screenshot one element in Firefox

  1. Open Developer Tools and select the Inspector.
  2. Use the element picker or the HTML pane to locate the node.
  3. Right-click the node in the HTML pane.
  4. Choose Screenshot Node.

The saved image includes the selected node and its descendants. This is preferable to manually cropping a viewport capture because the browser calculates the element’s actual rendered box.

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.
#1 Best Overall
Sale
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

Use Firefox’s console helper for control

Firefox’s Web Console provides a :screenshot helper when you need a delay, a selector, a device-pixel ratio, or a chosen filename. A typical command is:

:screenshot --selector .header --filename header.png

--selector limits the capture to the matching element and its descendants. Add --delay when a menu, animation, or hover state needs time to appear. Device-pixel-ratio options can produce higher-resolution output. Use a new filename for each version: reusing a filename overwrites the earlier image.

Automate full-page and element screenshots with Playwright

Playwright is the better fit when a capture must run repeatedly in CI, on a schedule, or across many pages. Install it in a Node.js project, create a browser, navigate to the URL, wait for the page state you need, and call the screenshot API.

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
npm install -D playwright
npx playwright install

Complete Node.js example

const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.launch();
  const page = await browser.newPage({ viewport: { width: 1440, height: 900 } });

  await page.goto('https://example.com', { waitUntil: 'networkidle' });

  // Entire scrollable document
  await page.screenshot({ path: 'page.png', fullPage: true });

  // One element (replace the selector with one that exists on your page)
  const header = page.locator('.header');
  await header.waitFor({ state: 'visible' });
  await header.screenshot({ path: 'header.png' });

  await browser.close();
})();

The essential full-page call is page.screenshot({ path: 'screenshot.png', fullPage: true }). For one element, use a locator screenshot such as await page.locator('.header').screenshot({ path: 'screenshot.png' }). Locator screenshots wait for the target to be actionable and crop to its bounds.

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

Make captures deterministic

  • Wait for content: use waitUntil: 'networkidle', an explicit locator wait, or a short delay for client-rendered widgets.
  • Freeze unstable visuals: disable animations with injected CSS or wait until a carousel reaches a known state.
  • Set the viewport: screenshots depend on viewport width, height, responsive breakpoints, and scrollbar behavior.
  • Choose an image format: PNG is lossless; JPEG is smaller for photographic pages; Playwright also supports format, quality, and clip-area parameters.
  • Use a stable selector: prefer a data attribute or semantic locator over a class generated by a build tool.

Clip an area instead of selecting a DOM node

When the desired region is not a single element, use a screenshot clip rectangle:

await page.screenshot({
  path: 'region.png',
  clip: { x: 80, y: 120, width: 900, height: 500 }
});

Coordinates are in CSS pixels relative to the page. A locator screenshot is usually safer for responsive components because it follows the element when layout changes.

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.

Playwright screenshot-tool options and limitation

If you are using a Playwright screenshot tool rather than writing the API call directly, fullPage: true requests the full scrollable page. Its scale option accepts css (CSS-pixel output) or device (device-pixel output for a denser image). In that tool, fullPage and a targeted element cannot be combined: choose the whole page or the target.

Wait for menus, lazy images, and other dynamic elements

Delayed or interactive states

For a hover menu, click or hover before capturing, then wait for its visible state:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
await page.getByRole('button', { name: 'Menu' }).hover();
await page.locator('.menu-panel').waitFor({ state: 'visible' });
await page.locator('.menu-panel').screenshot({ path: 'menu.png' });

Lazy-loaded content

Full-page capture can expose content that was not initially in the viewport, but a page’s own lazy-loading logic may still require scrolling. If images are missing, scroll incrementally before the final screenshot:

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
await page.evaluate(async () => {
  await new Promise(resolve => {
    let y = 0;
    const step = 600;
    const timer = setInterval(() => {
      window.scrollBy(0, step);
      y += step;
      if (y >= document.body.scrollHeight) {
        clearInterval(timer);
        window.scrollTo(0, 0);
        resolve();
      }
    }, 100);
  });
});
await page.screenshot({ path: 'loaded-page.png', fullPage: true });

Fonts and layout shifts

Wait for web fonts when typography matters: await page.evaluate(() => document.fonts.ready). Also wait for the specific image or component that changes page height. Capturing too early can produce shifted text, blank image boxes, or a truncated page.

Common failures and fixes

Symptom Likely cause Fix
Element screenshot is empty or fails Selector matches nothing, or the node is hidden Check the selector in Inspector, wait for visibility, and ensure the element is not display:none.
Images are blank Lazy loading, blocked requests, or capture happened too soon Scroll to trigger loading, wait for the image, and inspect network errors.
Full-page image stops early Nested scroll container or page height changes during capture Capture the scrolling container as an element, or wait for content and fonts before full-page capture.
Text differs between runs Responsive viewport, fonts, animations, or time-dependent content Fix viewport and timezone, wait for fonts, disable animations, and mask or hide volatile regions.
Firefox overwrote a previous file The same filename was reused Supply a unique filename for each capture.
Browser launch fails in CI Playwright browsers are not installed or sandbox permissions are restricted Run npx playwright install during setup and follow your CI provider’s browser requirements.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup

ScreenshotNeo returns a screenshot or PDF from one HTTP request, which is useful when you do not want to maintain a browser runtime. It can capture a full page or one element by CSS selector, load lazy images, set viewport and device presets, use retina scale, wait for a selector, delay, or network idle, and apply custom CSS or JavaScript. It also supports dark mode, clicks before capture, hidden selectors, request and resource blocking, headers, cookies, user agents, authorization, timezone, geolocation, transparent backgrounds, resizing, chosen cache TTLs, signed links, asynchronous jobs with signed webhooks, bulk capture of up to 100 URLs per call, usage data, and PDF options.

Cookie banners, newsletter popups, and chat widgets are removed before the shot; bot checks, blank pages, timeouts, failed loads, and cache hits are not billed. Every response identifies the page verdict and billing status with X-Page-Verdict and X-Billed headers. An MCP server provides take_screenshot, get_page_info, and capture_pdf tools to Claude, Cursor, and other MCP clients.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

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

cURL

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

Python

import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
r.raise_for_status()
open("shot.webp", "wb").write(r.content)

Node.js

const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot failed: ${res.status}`);
const fs = await import('node:fs/promises');
await fs.writeFile('shot.webp', Buffer.from(await res.arrayBuffer()));

See the ScreenshotNeo documentation for parameter names and response details. The API accepts the parameter names used by other screenshot services, easing migration. Plans include 1,000 screenshots per month free with no card; paid plans start at $5 for 3,000 shots. Sign up for the free plan.

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.

Cost, reliability, and workflow choices

  • One-off inspection: Firefox is fastest and requires no project setup.
  • Repeatable tests: Playwright keeps selectors and timing in source control, but you must install and maintain browsers.
  • Service-based capture: ScreenshotNeo removes browser infrastructure, handles cleanup of common consent and widget overlays, and reports whether a response was billable.
  • Large batches: use asynchronous jobs or bulk capture rather than launching a new local browser for every URL.

For visual regression, keep the URL, viewport, browser version, wait conditions, and selector fixed. Store screenshots with a commit or run identifier so a changed image can be traced to a known input.

Frequently asked questions

Frequently Asked Questions

How do I take a screenshot of the entire page?

In Firefox, enable “Take a screenshot of the entire page” in Developer Tools settings and click its toolbar button. In Playwright, call page.screenshot({ path: 'page.png', fullPage: true }).

How do I screenshot one element on a webpage?

In Firefox Inspector, right-click the node and choose “Screenshot Node.” In Playwright, call await page.locator('YOUR_SELECTOR').screenshot({ path: 'element.png' }).

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

Can a full-page screenshot and an element screenshot be requested together?

Not in Playwright’s screenshot tool: fullPage and a targeted element are mutually exclusive. Make separate captures.

Where does Firefox save screenshots?

Firefox saves Developer Tools captures to the Downloads folder by default.

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.

Read next

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.