Free tools Windows power users keep installed
One-click scans. No signup required.
“Full browser environment” can mean two different captures. A full-page screenshot records the entire scrollable webpage, including content below the fold. A browser-window or desktop capture also includes tabs, address bar, toolbars, and possibly other applications. Playwright and Firefox Developer Tools document the first kind (page, viewport, or element); they do not define one universal, browser-native way to capture browser chrome across operating systems. Use Playwright or Firefox for repeatable webpage images, and your operating system’s screen-capture feature when the interface or desktop must appear.
Choose exactly what you need to capture
| Target | What appears | Best method |
|---|---|---|
| Viewport | Only the currently visible portion of the webpage | Normal browser or automation screenshot |
| Full webpage | The page’s complete scrollable content, as if displayed on a very tall screen | Playwright fullPage or Firefox’s full-page Developer Tools button |
| Element | One component such as a card, chart, or navigation panel | Playwright locator screenshot or Firefox Inspector “Screenshot Node” |
| Browser window or desktop | Tabs, address bar, toolbars, browser frame, and optionally other applications | Operating-system screen capture; browser-page tools do not establish a shared cross-platform workflow |
Decide whether you need CSS-pixel-sized output or device-resolution output. Playwright can scale an image to one pixel per CSS pixel (css) or use device pixels (device); the latter can be much larger on high-DPI displays. Choose css for compact, layout-focused documentation and device when pixel-level visual detail matters. [Playwright screenshot parameters]
Automate a full webpage with Playwright
Playwright’s screenshot API supports fullPage: true (Python: full_page=True). It captures the full scrollable page rather than just the current viewport. You can save directly to a file or request bytes for further processing. [Playwright screenshots guide] [Page API]
JavaScript (Node.js)
- Install Playwright and its browser binaries:
npm install playwright npx playwright install chromium - Create
full-page.js:
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch({ headless: true });
const page = await browser.newPage({
viewport: { width: 1440, height: 900 },
deviceScaleFactor: 1
});
await page.goto('https://example.com', { waitUntil: 'networkidle' });
await page.screenshot({
path: 'example-full.webp',
fullPage: true,
type: 'webp',
scale: 'css'
});
await browser.close();
})();
Run it with node full-page.js. Replace the URL and output format as needed. PNG is lossless; JPEG is smaller but loses detail; WebP generally provides a useful size-quality compromise.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitches#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
Python
- Install the package and Chromium:
pip install playwright
playwright install chromium
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page(
viewport={"width": 1440, "height": 900},
device_scale_factor=1,
)
page.goto("https://example.com", wait_until="networkidle")
page.screenshot(
path="example-full.png",
full_page=True,
type="png",
scale="css",
)
browser.close()
For image processing instead of a file, omit path and assign the returned bytes: data = page.screenshot(full_page=True).
Capture one element instead
Use a locator when a whole page would include irrelevant content:
const card = page.locator('.pricing-card').first();
await card.screenshot({ path: 'pricing-card.png' });
Firefox’s Inspector provides the equivalent “Screenshot Node” action for a selected element. [Firefox Developer Tools: Taking screenshots]
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
Make automated captures reliable
Wait for the content that matters
networkidle can help on pages that finish loading their resources, but applications with analytics, live feeds, or long polling may never become idle. Prefer a specific readiness condition when possible:
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →await page.goto(url, { waitUntil: 'domcontentloaded' });
await page.locator('main').waitFor({ state: 'visible' });
await page.waitForTimeout(500); // only for a known animation or delayed render
Waiting for a selector is more deterministic than adding an unnecessarily long fixed delay. If images load lazily, scroll through the page before capture so below-the-fold assets are requested:
await page.evaluate(async () => {
await new Promise(resolve => {
let y = 0;
const step = () => {
y += window.innerHeight;
window.scrollTo(0, y);
if (y < document.body.scrollHeight) requestAnimationFrame(step);
else setTimeout(resolve, 300);
};
step();
});
});
await page.screenshot({ path: 'lazy-loaded.png', fullPage: true });
Control layout and privacy
- Set a fixed viewport, locale, timezone, color scheme, and device scale factor so runs are comparable.
- Authenticate with a test account or inject required cookies; never hard-code production secrets in scripts.
- Use CSS to hide a video, cursor, timestamp, or other unstable element before capture.
- Capture after fonts and critical images are visible; otherwise text can reflow between runs.
Understand very long pages
A full-page image can become extremely tall and consume substantial memory. For long reports, capture sections or export a PDF instead. If a site uses an internal scroll container rather than document scrolling, fullPage may not include the container’s hidden content; target that element and adjust its scroll behavior before taking the screenshot.
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.
No-code method in Firefox
- Open the page in Firefox and press
F12(or choose Menu → More tools → Browser Tools → Web Developer Tools, depending on your Firefox layout). - Open the Developer Tools toolbox menu and choose Settings.
- Under Available Toolbox Buttons, enable the full-page screenshot button. Firefox documents this prerequisite in its screenshot instructions. [Mozilla Firefox Source Docs]
- Click the camera/full-page screenshot button. Firefox saves the entire webpage rather than only the visible viewport.
- To capture one component, open Inspector, select the node, open its context menu, and choose Screenshot Node.
The result is still a webpage image. It does not include Firefox’s tabs or toolbar. For those, use your operating system’s screen-capture shortcut and select the browser window or a rectangular region. Exact shortcuts and recording options differ by Windows, macOS, Linux desktop, and other systems, so follow the instructions for your edition.
Or skip the browser setup
ScreenshotNeo returns a webpage screenshot or PDF from one HTTP request. Its cleanup step accepts cookie/consent banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each cleanup action can be disabled. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and response headers identify the page verdict and whether the request was billed. It also offers an MCP server with take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients.
See the ScreenshotNeo API documentation for all options. A minimal call is:
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(`${res.status} ${res.statusText}`);
require('fs').writeFileSync('shot.webp', Buffer.from(await res.arrayBuffer()));
Beyond full-page capture, ScreenshotNeo supports element selectors, dark mode, 12 device presets plus custom viewports, retina scale, PDF paper and page-range controls, custom CSS and JavaScript, pre-capture clicks, hide selectors, waits for selectors/delays/network idle, request and resource blocking, headers, cookies, user agents, Authorization, timezone and geolocation, transparent backgrounds, resizing, chosen-TTL caching, signed public-image links, asynchronous jobs with signed webhooks, bulk capture of up to 100 URLs per call, a usage API, OpenAPI, and compatibility with parameter names used by other screenshot APIs.
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
Plans include 1,000 screenshots each month free with no card; paid plans are Starter $5 for 3,000, Growth $15 for 15,000, Pro $39 for 60,000, Scale $99 for 250,000, and Business $249 for 1,000,000. Yearly billing gives two months free, and every feature is on every plan. Create a free ScreenshotNeo account to start.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Troubleshooting checklist
The image stops at the fold
Confirm you used fullPage: true or full_page=True, not a regular screenshot. For Firefox, enable the full-page toolbox button first.
Images or fonts are missing
Wait for the relevant selector, scroll to trigger lazy loading, and verify that the page is not blocking the automated browser. Capture after the webfont has loaded to prevent text reflow.
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.
The page is blank or times out
Check the URL and network access, increase the navigation timeout only when the site is genuinely slow, and inspect redirects or authentication requirements. A bot check may require an approved, authenticated workflow rather than repeated retries.
The screenshot is unexpectedly huge
Use scale: 'css', a smaller viewport, or section captures. Device-pixel output multiplies dimensions on high-DPI settings.
Dynamic content changes between runs
Freeze the viewport and locale, wait for a specific ready element, hide animations with injected CSS, and use a test dataset where possible.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Which method should you use?
- One occasional webpage: Firefox’s full-page button is fastest.
- Repeatable tests or documentation: Playwright gives versionable code, fixed settings, element capture, and byte-level processing.
- Many URLs, PDFs, cleanup, or AI-agent workflows: ScreenshotNeo avoids browser installation and exposes API, bulk, PDF, caching, and MCP options.
- Tabs, address bar, or desktop context: use the operating system’s window or region capture; neither documented Playwright page screenshots nor Firefox’s full-page tool captures browser chrome.
Frequently Asked Questions
Does a full-page screenshot include browser tabs and the address bar?
No. Playwright and Firefox’s documented full-page features capture webpage content. Use your operating system’s window or desktop capture for browser chrome.
Can I process a screenshot without saving a file?
Yes. Playwright returns screenshot bytes when you omit the path; assign those bytes to a variable and pass them to your image-processing code.
Why is my full-page capture missing content inside a scrolling panel?
fullPage follows the document’s scrollable extent. A nested scroll container may need separate element handling or CSS/JavaScript that expands or scrolls that container before capture.
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.

