Recommended Free Tools
Set fullPage: true in either Puppeteer or Playwright. The option captures the page’s complete scrollable content instead of only the current viewport. Pass a path to save an image, or omit it to receive image bytes for processing in memory. Full-page screenshots include web content, not the browser’s tabs, address bar, or window frame.
What “full page” captures
A page screenshot is taken inside the browser automation context. With fullPage: true, the library renders the full scrollable document as if the viewport were tall enough to show it all. It does not capture operating-system UI or browser chrome. If you need the entire desktop, window border, tabs, or address bar, use an operating-system capture utility instead.
The option does not automatically guarantee that every lazy-loaded image, animation, advertisement, or asynchronous component has finished. Wait for a site-specific readiness condition before capturing.
Capture a full page with Puppeteer
Install and run
In a new Node.js project, install Puppeteer:
npm install puppeteer
Save this as screenshot.mjs and run it with node screenshot.mjs:
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstall#1 Best Overall
- 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
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com', { waitUntil: 'networkidle2' });
await page.screenshot({ path: 'full-page.png', fullPage: true });
await browser.close();
fullPage defaults to false, so leaving it out produces a viewport screenshot. The path writes the result to disk. When a path is supplied, Puppeteer infers the image type from its extension; PNG is the documented default. Use a filename such as page.jpg or page.webp when that format is appropriate.
Receive bytes instead of creating a file
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com', { waitUntil: 'networkidle2' });
const bytes = await page.screenshot({ fullPage: true });
// bytes is a Uint8Array when binary encoding is used
await browser.close();
Use the returned bytes to upload to object storage, pass them to an image processor, or attach them to a test report. Puppeteer can also return a base64 string when you select an encoded output.
Restrict the capture to a rectangle
clip limits the image to an x/y origin, width, and height. This is useful for a known region rather than the entire document:
await page.screenshot({
path: 'hero.png',
clip: { x: 0, y: 120, width: 1200, height: 500 }
});
When clipping, Puppeteer’s captureBeyondViewport controls whether content outside the current viewport can be captured. Its documented default depends on whether a clip is supplied, so set it explicitly when your workflow relies on beyond-viewport clipping.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Capture a full page with Playwright
Node.js example
Install Playwright and its browser binaries:
npm install playwright
npx playwright install
Then run:
import { chromium } from 'playwright';
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://example.com', { waitUntil: 'networkidle' });
await page.screenshot({ path: 'full-page.png', fullPage: true });
await browser.close();
Playwright defines this as a screenshot of the full scrollable page, as though a very tall screen could display it in one view. To keep the result in memory, omit path:
const buffer = await page.screenshot({ fullPage: true });
// buffer contains the image bytes for post-processing
Clip, scale, and mask
await page.screenshot({
path: 'section.png',
clip: { x: 20, y: 100, width: 900, height: 600 },
scale: 'css',
mask: [page.locator('[data-private]')]
});
clip: captures only the specified rectangle.scale: 'css': produces one output pixel per CSS pixel.scale: 'device'produces device-pixel output and is the documented default.mask: covers matching locators during capture. Playwright documents pink as the default mask color; specify a mask color if your API version supports that option.
For repeatable images, Playwright’s screenshot API also exposes animations and caret controls. Disable animations and hide the text caret when blinking or moving elements would make visual comparisons unstable.
Rank #2
- 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
Use Playwright’s command-line interface
playwright-cli screenshot --full-page --filename=full-page.png
The --full-page flag requests the full scrollable page and --filename selects the output file. The CLI is convenient for one-off captures or shell scripts; use the Node.js API when you need authentication, readiness logic, masking, or post-processing.
Make dynamic pages complete before capture
Choose a readiness signal
Navigation completion is not the same as application readiness. A single-page app may render its shell first, then fetch content. Prefer a condition that represents the page you intend to archive:
await page.goto('https://example.com/catalog', { waitUntil: 'domcontentloaded' });
await page.waitForSelector('[data-page-ready]');
await page.screenshot({ path: 'catalog.png', fullPage: true });
For a known, finite delay, use a deliberate timeout, but do not assume one delay works for every site. If lazy images load only after scrolling, trigger the site’s own loading behavior or wait for the relevant image elements before taking the screenshot. Neither Puppeteer nor Playwright promises that every lazy-loaded asset is present automatically.
Handle cookies, dialogs, and overlays
Consent banners, newsletter modals, and chat bubbles can obscure content. In your script, interact with the page or hide selectors before capture. Playwright’s mask is useful when data must be covered consistently; hiding an element is preferable when you want the underlying page visible.
Set a stable viewport and device profile
Responsive layouts depend on viewport dimensions and device pixel ratio. Set them explicitly so repeated runs use the same breakpoints:
const page = await browser.newPage({
viewport: { width: 1440, height: 900 },
deviceScaleFactor: 1
});
A full-page image can become very large on long documents. If a consumer cannot handle one huge bitmap, capture a specific element or region, or generate a PDF instead of forcing one image.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errorsPuppeteer or Playwright?
| Question | Puppeteer | Playwright |
|---|---|---|
| Primary fit | Focused Chrome automation API | Cross-browser automation framework with a CLI |
| Full-page switch | fullPage: true |
fullPage: true |
| File output | path; type inferred from extension |
path |
| In-memory output | Base64 or Uint8Array, depending on options |
Buffer from page.screenshot() |
| Region capture | clip |
clip |
| Notable controls | captureBeyondViewport for clipping behavior |
scale, mask, animation and caret controls |
| Command line | Use the Node API or your own script | playwright-cli screenshot --full-page --filename=… |
Choose the library already used by your project unless you specifically need Playwright’s cross-browser coverage and CLI, or Puppeteer’s focused Chrome workflow. The documented APIs do not establish a universal performance or reliability winner.
Rank #3
- 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.
Troubleshooting full-page screenshots
The image contains only the viewport
Set fullPage: true in the page.screenshot() options. Check that you are passing the option to the screenshot call rather than to goto or browser launch.
The bottom of the page is blank
The page may still be loading content or lazy assets. Wait for a page-specific locator, application state, or image completion condition. Also check for a fixed-height container whose internal scrolling area is not the document itself; capture that element with a suitable clip or selector-based workflow.
Fonts or images are missing
Wait for the resources your page depends on, verify that the browser process can reach their hosts, and avoid treating a generic network-idle event as proof that every application asset is ready. Inspect blocked requests and authentication requirements.
The screenshot is unexpectedly huge
Long pages and high device pixel ratios create large bitmaps. Use Playwright’s scale: 'css', reduce the viewport width only when that matches your requirement, capture a region, or process the returned bytes in a streaming or resized pipeline.
A private field appears in the image
Use Playwright mask with a locator, hide the element before capture, or remove sensitive data in the test fixture. Treat screenshots as exported data and apply the same access controls as the source page.
The script hangs or times out
Set a realistic navigation and operation timeout, identify the request or locator that never completes, and replace a broad “wait forever for network idle” strategy with a finite readiness condition. Close the browser in a finally block so failed jobs do not leak processes.
Rank #4
- 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
The result includes a browser address bar
That is outside the page screenshot API’s target. Capture the operating-system window or desktop if browser chrome is required.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Reliability, throughput, and cost considerations
- Reliability: Pin browser and library versions in CI, set a deterministic viewport, and wait for an application-level readiness signal.
- Throughput: Reuse a browser process for multiple pages when appropriate, but isolate pages that carry different cookies or credentials. Limit concurrency to what your CPU, memory, and target sites can sustain.
- Storage: PNG preserves lossless detail but can be large. JPEG or WebP may reduce storage when transparency and pixel-perfect text are not requirements.
- Security: Keep credentials out of screenshot URLs and logs, restrict access to captured files, and mask personal or secret data before exporting.
- Cost: Self-hosted Puppeteer and Playwright have no per-shot API fee, but you pay for browser compute, memory, storage, maintenance, and any proxy or rendering infrastructure.
Or skip the browser setup
ScreenshotNeo is a website screenshot API and MCP server for developers. One GET request returns a PNG, JPEG, WebP, or PDF. It accepts cookie and consent banners like a visitor, then removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each cleanup step can be disabled. 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.
Here is the cURL form (see the ScreenshotNeo documentation for all options):
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)
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}`);
ScreenshotNeo also supports full-page capture with lazy images loaded, CSS-selector element capture, dark mode, device presets and custom viewports, retina scale, PDFs with paper and page-range controls, custom CSS and JavaScript, clicks, waits, request blocking, headers, cookies, user agents, authorization, timezone and geolocation, transparent backgrounds, resizing, configurable caching, signed links, asynchronous jobs with signed webhooks, bulk capture for up to 100 URLs per call, a usage API, and an OpenAPI specification. Its parameter names are compatible with those used by other screenshot APIs, which can simplify switching.
An MCP server provides take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients. 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 ScreenshotNeo plan.
Frequently asked questions
Does fullPage include the browser window?
No. It captures the full scrollable web page only. Tabs, the address bar, and the operating-system frame require a desktop capture tool.
Can I save a screenshot and also process it in memory?
Yes. Omit path to receive binary data, then write those bytes yourself or pass them to an image-processing pipeline.
Best Value
- 【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.
Which library should a new project use?
Use Puppeteer for a focused Chrome automation API; choose Playwright when its cross-browser framework, masking and CLI better match your environment. Both use fullPage: true.
Why did a lazy-loaded image not appear?
Full-page mode changes the capture area, not the application’s loading logic. Wait for the image or the page state that proves it is ready before calling screenshot.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Frequently Asked Questions
Does fullPage include the browser window?
No. It captures the full scrollable web page only. Tabs, the address bar, and the operating-system frame require a desktop capture tool.
Can I save a screenshot and also process it in memory?
Yes. Omit path to receive binary data, then write those bytes yourself or pass them to an image-processing pipeline.
Which library should a new project use?
Use Puppeteer for a focused Chrome automation API; choose Playwright when its cross-browser framework, masking and CLI better match your environment. Both use fullPage: true.
Why did a lazy-loaded image not appear?
Full-page mode changes the capture area, not the application’s loading logic. Wait for the image or the page state that proves it is ready before calling screenshot.
Free tools Windows power users keep installed
One-click scans. No signup required.
Quick Recap
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.




