Recommended Free Tools
To capture a webpage beyond the visible viewport, use a browser’s full-page screenshot command. In Playwright, call page.screenshot({ path: 'page.png', fullPage: true }) (or Python’s full_page=True). For a one-off capture, Firefox DevTools offers a full-page button and the Web Console command :screenshot --fullpage. These methods render the page as a tall image, but you must check the result on dynamic, lazy-loaded, virtualized, or extremely long pages.
Choose the right capture method
Your choice depends on whether you need a single manual image, a repeatable script, direct Chromium protocol control, or a hosted API.
| Need | Best fit | What it provides |
|---|---|---|
| One-off manual image | Firefox DevTools | Full-page or element capture, plus console options for delay, selector, filename, device-pixel ratio and clipboard. |
| Repeatable screenshots in tests or jobs | Playwright | A high-level API with fullPage/full_page, browser contexts, waits and scripting. |
| Low-level Chromium automation | Chrome DevTools Protocol | Page.captureScreenshot with clipping, image format, JPEG quality and beyond-viewport control. |
| JavaScript browser automation alternative | Puppeteer | Chrome and Firefox automation with full-page and element screenshot workflows. |
| No browser setup or managed capture | ScreenshotNeo | A GET API and MCP server that handles rendering, cleanup, formats, waits and delivery. |
Playwright documents full-page screenshots in its Page API and screenshot guide (Microsoft’s examples). Firefox’s controls are described in Mozilla’s screenshot documentation. For protocol-level work, see the Chrome DevTools Protocol Page domain; Puppeteer’s browser workflows are covered by Chrome for Developers.
Playwright: the repeatable full-page workflow
Playwright’s default is a viewport screenshot. Set fullPage: true in JavaScript or full_page=True in Python to request the complete scrollable document.
#1 Best Overall
- 【1080P HD High Quality】Capture resolution up to 1080p for video source and it is ideal for all HDMI devices such as PS4, PS3, Xbox One, Xbox 360, Wii U, DVDs, DSLR, Camera, Security Camera and set top box. Note: Video input supports 4K30/60Hz and 1080p120/144Hz. Does not support 4K120Hz/144Hz. Output supports up to 2K30Hz.
- 【Plug and Play】No driver or external power supply required, true PnP. Once plugged in, the device is identified automatically as a webcam. Detect input and adjust output automatically. Won't occupy CPU, optional audio capture. No freeze with correct setting.
- 【Compatible with Multiple Systems】suitable for Windows and Mac OS. High speed USB 3.0 technology and superior low latency technology makes it easier for you to transmit live streaming to Twitch, Youtube, Facebook, Twitter, OBS, Potplayer and VLC.
- 【HDMI LOOP-OUT】Based on the high-speed USB 3.0 technology, it can capture one single channel HD HDMI video signal. There is no delay when you are playing game live.
- 【Support Mic-in for Commentary】Rybozen capture card has microphone input and you can use it to add external commentary when playing a game. Please note: it only accepts 3.5mm TRS standard microphone headset.
JavaScript
import { chromium } from 'playwright';
const browser = await chromium.launch();
const page = await browser.newPage({ viewport: { width: 1440, height: 900 } });
await page.goto('https://example.com', { waitUntil: 'networkidle' });
await page.screenshot({ path: 'page.png', fullPage: true });
await browser.close();
Python
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page(viewport={"width": 1440, "height": 900})
page.goto("https://example.com", wait_until="networkidle")
page.screenshot(path="page.png", full_page=True)
browser.close()
- Install Playwright for your language and install its browser binaries.
- Create a context with the viewport, device scale factor, locale, timezone or other conditions you need.
- Navigate to the page and wait for a meaningful state: a specific selector, a short delay, or network idle. Network idle is not proof that every application has finished rendering.
- Handle consent dialogs or sign-in screens before capture if the page requires them.
- Call the full-page screenshot method and inspect the resulting image.
The output is intentionally very tall. Save PNG for lossless text and UI, JPEG when a smaller photographic file matters, or WebP when your downstream tools support it. Playwright’s full-page flag asks for the whole scrollable page; it is not a guarantee that content which has never been rendered or exists only in a virtualized list will appear.
Firefox DevTools: a no-code one-off
- Open the page in Firefox.
- Open Developer Tools and choose the screenshot control (the camera icon in the relevant DevTools toolbar).
- Choose the full-page option, then save the image.
For command-line-like control, open the Web Console and run:
:screenshot --fullpage
Mozilla documents optional parameters including --selector for one element, --delay to wait before capture, --dpr for device-pixel ratio, --filename to name the result, --file to write to disk and --clipboard to copy the image. A selector capture is useful when the page is huge but the article, invoice or component you need is not.
Chromium’s DevTools Protocol
Use CDP when your automation already speaks the Chrome DevTools Protocol and you need parameters unavailable in a higher-level wrapper. The Page.captureScreenshot method accepts an optional clip rectangle and an image format of jpeg, png or webp; JPEG supports a quality value. Set captureBeyondViewport when you need content outside the current viewport—it defaults to false.
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 errorsMost projects should prefer Playwright or Puppeteer unless direct protocol access is a requirement. CDP calls are lower level: you are responsible for navigation, waiting, viewport setup, authentication and error handling.
Handling content below the fold correctly
Lazy-loaded images
Many pages request images only after an element approaches the viewport. A full-page request may therefore produce blank image areas if the page never receives scroll events. Scroll through the document first, wait for images or a known content selector, then capture. You can also disable animations with injected CSS so transitions do not produce inconsistent frames.
Infinite scroll and virtualized lists
Infinite-scroll pages do not have a finite document until more items are requested. Virtualized lists may keep only visible rows in the DOM. No single full-page flag can promise every item in these designs. Automate scrolling in batches, record the loaded item count, and capture only after the application reports completion. If the list is intentionally unbounded, define a stopping rule such as a maximum item count or a “no more results” marker.
Rank #2
- 【1080P 60FPS Video Capture Card】 This HDMI game capture card is based on USB3.0 high speed transmission port, input resolution up to 4K@30HZ, output resolution up to 2K@30Hz or 1920×1080@60Hz. Type c and USB interface can meet most of the devices in daily life. Easily meet the online capture, real-time recording, online meetings, live gaming and other functions, so you have a better visual enjoyment. Note: For capture use only; requires capture software to function and is not intended for direct screen casting to a monitor or TV
- 【Ultra Low Latency Screen Sharing】 HDMI capture card is made of good quality aluminum alloy with strong heat dissipation, allowing you to enjoy ultra low latency while live gaming or video recording or live streaming, avoiding blue screens and lag. This HDMI to USBC capture card supports easy recording of good quality audio or HD video and transferring it to your computer or streaming platform, allowing you to record 60 fps HD video directly on your hard drive and real-time preview
- 【Plug and Play, Easy to Carry】 This HDMI 1080P video capture card does not require any additional drivers or external power supply, just plug and play for fast capture. The capture card is small and lightweight, so you can put it in your bag for emergencies, making it very portable for outdoor live streaming. It's also a great way to share content in game recording, video conference, video recorder and online teaching
- 【Wide Compatibility USB Capture Card】 Easily streams to Facebook, Youtube or Twitch. With the connection, this HDMI to USB C/3.0 video capture devices can be working on several Operating Systems and various software: Windows 7/ 8/ 10, Mac OS or above, Linux, Android, Laptop, Xbox One, PS3/PS4/PS5, Camera, DVDs, Set Top Box, Webcame, DSLR, Switch/Switch 2, TV BOX, HDTV, Potplayer/VLC, ZOOM, OBS Studio etc.
- 【Package Content & Note】 1x HD Audio Capture Card , 1x USB 3.0 to USB C Adapter (A-side 3.0, B-side 2.0), 1x user manual. Please note that you need to restart the OBS Studio software after the audio setup is complete, otherwise it will result in no sound output. When using an adapter, if the device is recognized as USB 2.0, try using the other side with the USB-C port. Simply flip the capture card and reconnect it to be recognized as USB 3.0
Sticky headers, cookie banners and overlays
Fixed headers can appear repeatedly in stitched or segmented images. Consent dialogs, chat bubbles and newsletter prompts can hide content. Dismiss them before capture, or hide their selectors in your automation. Keep a record of any elements you intentionally remove so the image remains auditable.
Very long documents
Large bitmap dimensions consume memory in the browser and in image viewers. Prefer WebP or JPEG where lossless pixels are unnecessary, capture a specific element, or divide the page into overlapping sections. Overlap makes it possible to verify that no line was skipped when joining images later.
Fallback: scroll and capture overlapping sections
Use this workaround when the full-page result is incomplete or the site’s layout changes as it scrolls. It is practical guidance, not a universal stitching guarantee.
- Measure the document height and choose a segment height smaller than your viewport.
- Scroll to the first position and wait for network activity, images and animations to settle.
- Capture a viewport screenshot.
- Advance by less than one segment height so adjacent images overlap.
- Repeat until a footer, end marker or maximum height is reached.
- Assemble the segments while checking repeated fixed elements, sticky headers and changed content.
For deterministic output, freeze the viewport width, device scale factor, fonts, timezone and locale. Capture at the same time or use a test environment so ads and personalized modules do not move between segments.
Or skip the browser setup
ScreenshotNeo provides a website screenshot API and MCP server. One GET request returns PNG, JPEG, WebP or PDF, and its full-page mode loads lazy images. Before capture it accepts the cookie or consent banner like a visitor and removes more than 60 known consent platforms, newsletter popups and chat widgets; each cleanup step can be switched off.
Free tools Windows power users keep installed
One-click scans. No signup required.
Only clean shots are billed. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads and cache hits cost nothing, and response headers identify the page verdict and whether it was billed. AI agents can use the MCP tools take_screenshot, get_page_info and capture_pdf from Claude, Cursor or another MCP client.
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)
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}`);
See the ScreenshotNeo documentation for option names and response details. Available controls include CSS-selector element capture, dark mode, 12 device presets plus custom viewports, retina scale, PDF paper size and margins, custom CSS or JavaScript, pre-capture clicks, selector or delay waits, network-idle waits, ad/tracker/request blocking, custom headers, cookies, user agents and Authorization, timezone, geolocation, transparent backgrounds, resizing, configurable-TTL caching, signed public image links, asynchronous jobs with signed webhooks, bulk capture of up to 100 URLs per call, a usage API and an OpenAPI specification. Existing parameter names used by other screenshot APIs also work to ease migration.
Plans and billing
| Plan | Allowance and price |
|---|---|
| Free | 1,000 shots per month; no card |
| Starter | $5 for 3,000 shots |
| Growth | $15 for 15,000 shots |
| Pro | $39 for 60,000 shots |
| Scale | $99 for 250,000 shots |
| Business | $249 for 1,000,000 shots |
Yearly billing provides two months free, and every feature is included on every plan. Create a free ScreenshotNeo account to get 1,000 screenshots a month with no card.
Rank #3
- 4K60 Capture: Record in cinematic quality with crisp detail and vivid colors
- HFR Support: Play and capture in 1440p120 or 1080p240
- HDR10 Support: Capture brilliant HDR content with tone mapping on Windows
- Cross-Platform Compatible: Works with PS5, Xbox Series X/S, Switch 2, and more
- Analog Audio In: Capture in-game chat or commentary with 3.5mm input
Troubleshooting incomplete or failed captures
The image stops at the viewport
Confirm that your API or library is using the full-page option. In CDP, check captureBeyondViewport; its default is false. Also verify that you are not passing a clip rectangle that ends at the viewport.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Images or sections are blank
Scroll to trigger lazy loading, wait for a specific image or content selector, and capture again. Check for blocked third-party resources, authentication redirects and JavaScript errors.
A cookie dialog covers the page
Accept or dismiss the dialog before capture. If the dialog is injected late, wait for it and then click it; a fixed delay alone is less reliable than waiting for its selector.
The page never finishes loading
Replace an indefinite network-idle wait with a bounded timeout plus a selector that proves the main content exists. Log the final URL and HTTP status, and retry transient navigation failures.
The screenshot is too large to open
Capture an element, reduce the viewport or device scale factor, choose WebP or JPEG, or generate overlapping segments. Keep the original segments if you need to prove that the assembled image is complete.
Content changes between runs
Use a fixed viewport, locale, timezone, user agent and test data. Disable animations, block ads or trackers where appropriate, and record the capture timestamp and URL.
Quality and reliability checklist
- Confirm the expected URL after redirects.
- Wait for a meaningful selector, not only a timer.
- Trigger and verify lazy-loaded content.
- Check the top, middle and bottom of every tall image.
- Look for repeated sticky elements, missing fonts and clipped horizontal content.
- Use deterministic browser settings for regression tests.
- Keep retries bounded and distinguish navigation failures from valid bot-check pages.
- Store capture metadata—URL, viewport, format, time and verdict—alongside the image.
FAQ
Does a full-page screenshot create a PDF?
No. A screenshot is an image; PDF generation is a separate browser or API operation. ScreenshotNeo can return PDFs with paper size, margins, orientation and page-range controls.
Rank #4
- High-Quality Video Capture, 4K HDMI Capture Card Ready: Capture smooth and vibrant video with this 4K HDMI capture card, engineered for gamers and content creators who demand crisp 1080P 60FPS video quality. Whether you're streaming to Twitch or recording gameplay for YouTube, your footage will look professional and detailed
- Plug-and-Play USB Capture Card, No Drivers Needed: Designed as a USB capture card for streaming, this device works instantly out of the box, just plug into your PC or laptop and start capturing. Fully compatible with popular software like OBS Studio, Streamlabs, and XSplit, making setup quick and stress-free for beginners and pros alike
- Universal Compatibility PS5, Xbox, Switch & More: Stream or record gameplay from virtually any HDMI-enabled device including Nintendo Switch, PS5, Xbox Series X, DSLR cameras, and PCs. The video capture card for gaming supports seamless passthrough so you can play without lag while your audience watches every frame in real time
- Low-Latency Performance for Smooth Streaming: This capture card for streaming minimizes delay between gameplay and broadcast, so you get reliable, low-latency capture that works well for competitive gaming, live broadcasts, and podcast sessions. Suitable for those building their channel with high-quality, engaging content
- Compact & Portable Design for Content Creators: Lightweight and portable, this USB 3.0 capture card works well for creators who travel or switch gaming setups often. Throw it in your bag and stream or record wherever you are, at home, events, LAN parties, streaming or studio sessions
Can I capture just one element below the fold?
Yes. Firefox supports selector targeting, Playwright can screenshot a locator, and ScreenshotNeo accepts a CSS selector for element capture.
Why use a hosted API instead of installing Playwright?
A hosted service avoids browser binaries and runtime maintenance, and can centralize authentication, caching, bulk jobs and webhooks. Local automation remains preferable when pages or credentials cannot leave your environment.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Frequently Asked Questions
What is the simplest manual way to capture an entire webpage?
In Firefox, open Developer Tools, choose the screenshot control and select the full-page option.
What does Playwright’s fullPage setting change?
It requests a screenshot of the entire scrollable document instead of only the current viewport; JavaScript uses fullPage: true and Python uses full_page=True.
Are full-page screenshots guaranteed to include infinite-scroll content?
No. Infinite-scroll and virtualized interfaces may require explicit scrolling and a defined stopping rule before you capture.
The Bottom Line
Use Firefox DevTools for a quick manual image and Playwright for repeatable work. Verify lazy-loaded and virtualized content rather than assuming a full-page flag is universal; use overlapping captures when necessary. If you want the same controls without managing a browser, ScreenshotNeo provides the one-call alternative.
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.

