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.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

Windows is not an unsupported Selenium screenshot platform. When save_screenshot() works on an iPhone or iPad but fails on Windows, the difference is usually in one of five layers: browser/driver compatibility, window geometry, headed versus headless execution, modal or crashed session state, or ordinary file I/O. iOS adds its own safaridriver, Appium/XCUITest and device-model variables, so an apparent success there does not prove the page or test is portable.

What Selenium is supposed to do

WebDriver defines page and element screenshot commands across operating systems. Selenium bindings expose methods such as Python’s driver.save_screenshot(path), JavaScript’s takeScreenshot(), and element screenshot methods. Chromium documents both session and element screenshot endpoints as implemented. A Windows-only error is therefore a diagnostic signal, not evidence that Selenium screenshots require iOS or that Windows is unsupported.

Start by preserving the exact exception or HTTP status. A returned False from Python is different from a WebDriver timeout, an “unknown error” response, or a zero-byte file. Those outcomes point to different layers.

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

How to reproduce the failure with a controlled Python test

Use a minimal page first. This separates Selenium, ChromeDriver and filesystem problems from application JavaScript, authentication and layout complexity.

#1 Best Overall
  1. Install and pin the components used by the test. Record the Selenium binding version, browser version and driver version. If you use a driver manager or a CI image, record the resolved binary rather than only the package name.
  2. Create an absolute output directory. Relative paths depend on the process working directory, which often differs between a local terminal, a Windows service and a test runner.
  3. Set the window size explicitly. Do not rely on a maximized desktop, RDP session or machine display scale.
  4. Capture the return value and file metadata. A successful command should produce a non-empty PNG.

Example:

from pathlib import Path
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

out = Path(r'C:selenium-artifacts')
out.mkdir(parents=True, exist_ok=True)
shot = out / 'home.png'

options = Options()
options.add_argument('--window-size=1365,900')
# Add --headless=new only when you intentionally want headless execution.
driver = webdriver.Chrome(options=options)
try:
    driver.get('https://example.com')
    print('url:', driver.current_url)
    print('window:', driver.get_window_rect())
    ok = driver.save_screenshot(str(shot))
    print('save_screenshot returned:', ok)
    print('exists:', shot.exists(), 'bytes:', shot.stat().st_size if shot.exists() else 0)
finally:
    driver.quit()

Python’s Selenium API documents that the save method returns False on an I/O error. Always check it; do not assume that no exception means a file was written.

Test an element separately

Page capture and element capture exercise different code paths. If the page shot works but an element shot fails, investigate selectors, visibility and coordinates rather than the output directory.

from selenium.webdriver.common.by import By

card = driver.find_element(By.CSS_SELECTOR, 'main')
assert card.screenshot(str(out / 'main.png'))

Run this after navigation and before quitting the driver. An element outside the current viewport, an element whose layout is still moving, or a stale element reference can make this path fail while the session screenshot remains healthy.

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

Why Windows failures are common-looking

Browser and driver regressions or mismatches

ChromeDriver release notes include screenshot-specific fixes: a lock when an alert appeared during capture, re-enabled screenshot integration tests, Windows headless-shell test fixes and historical screenshot-size corrections. A browser that auto-updated while the driver stayed pinned can expose one of these defects.

Compare the browser and driver major versions, then read the release notes for the exact versions in your failing run. Pin a compatible pair in CI instead of adding random flags. Save the complete WebDriver error, browser log and driver log so a regression can be distinguished from a test bug.

Rank #2
Dell Latitude 3190 11.6" HD 2-in-1 Touchscreen Laptop Intel N5030 1.1Ghz 4GB Ram 128GB SSD Windows 11 Professional (Renewed)
  • 1.1 GHz (boost up to 2.4GHz) Intel Celeron N5030 Quad-Core
  • 4GB DDR4 System Memory; 128GB Solid State Drive
  • 11.6" HD (1366 x 768) Multi-Touch Display
  • Combo headphone/microphone jack - Noble Wedge Lock slot - HDMI; 2 USB 3.1 Gen 1
  • Windows 11 Pro

Window geometry, scaling and viewport differences

Windows desktop scale, maximization state, remote-desktop dimensions and browser chrome all affect the content viewport. The same CSS pixels can therefore produce different PNG dimensions on two machines. Element coordinates can also become invalid when a responsive breakpoint changes.

Set --window-size=width,height or call the WebDriver window-rectangle API, then log the resulting rectangle. If image dimensions matter, record the device scale factor when your environment exposes it and compare the actual PNG dimensions, not only the requested window size.

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.

Headed versus headless mode

Headed Chrome depends on a usable desktop session. A Windows service, scheduled task or locked RDP session may start Chrome without the display context your interactive test had. Headless Chrome removes that visible-desktop dependency. Chrome’s headless documentation demonstrates --screenshot together with --window-size and explains that a display server such as Xvfb is unnecessary.

Headless is not automatically identical to headed rendering. Validate fonts, GPU-accelerated content, downloads and viewport dimensions in the mode you will ship. Older Chrome guidance said --disable-gpu was temporarily needed on Windows; treat that as historical and use it only when the documentation or logs for your browser version justify it.

Alerts, prompts and crashed sessions

A JavaScript alert can block the command channel. ChromeDriver has documented a screenshot lock when an alert fired during capture. A crashed tab or browser process produces a different failure, often an invalid-session or disconnected-driver error.

Rank #3
Dell Latitude 5420 14" FHD Business Laptop Computer, Intel Quad-Core i5-1145G7, 16GB DDR4 RAM, 256GB SSD, Camera, HDMI, Windows 11 Pro (Renewed)
  • 256 GB SSD of storage.
  • Multitasking is easy with 16GB of RAM
  • Equipped with a blazing fast Core i5 2.00 GHz processor.

Before retrying, log driver.current_url, the complete exception and browser/driver logs. If an alert is expected, handle it explicitly:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
from selenium.common.exceptions import NoAlertPresentException

try:
    alert = driver.switch_to.alert
    print('alert:', alert.text)
    alert.accept()
except NoAlertPresentException:
    pass

assert driver.save_screenshot(str(shot))

Do not hide every exception with an immediate retry. A retry against a crashed session only obscures the first failure; create a fresh session after collecting diagnostics.

Path permissions and file-system assumptions

Windows services commonly run under an account that cannot write to a developer’s desktop or project directory. A relative path may resolve to a system directory, and antivirus or cleanup jobs can remove a file immediately after creation.

  • Use an absolute path in a directory created by the test.
  • Use a .png extension and ensure the parent directory exists.
  • Check the Boolean result, file existence and byte count.
  • Log the effective Windows account and working directory in CI.
  • Do not treat a zero-byte artifact as a valid screenshot.

Why iOS can appear to work

Apple’s Safari WebDriver implementation is safaridriver. On iOS and iPadOS, WebDriver must be enabled, and Apple’s automation windows are isolated from ordinary browsing windows. That different execution context can avoid a Windows desktop-session or permissions problem.

It is not an iOS guarantee. Selenium issue #16555 records HTTP 500 UnknownException for a screenshot on an 11th-generation iPad while the same attempt did not fail on an iPad Air 4. When comparing devices, log the model, iOS version, Safari version, Selenium binding, Appium/XCUITest bridge and WebDriverAgent state. Keep the page, viewport and software versions constant before attributing a difference to the operating system.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
15.6 Inch Laptop Computer, N4020, 4GB DDR4 RAM, 128GB eMMC,with Windows 11
  • EFFORTLESS EVERYDAY PERFORMANCE: Powered by Intel Celeron N4020 processor and Windows 11 Home system, delivering reliable, low-power efficiency for daily tasks like document editing, email, online classes, and web browsing
  • 15.6-INCH FULL HD DISPLAY: Enjoy immersive visuals on the 15.6" FHD (1920x1080) anti-glare screen with micro-edge bezels. Delivers clear details and comfortable viewing for long study sessions, working on spreadsheets, and video playback
  • RESPONSIVE MULTITASKING & STORAGE: Built with 4GB LPDDR4 RAM and 128GB eMMC storage for smooth daily essential use. Expand your storage by up to 1TB via the integrated TF card slot to easily store movies, photos, and working files
  • ADVANCED CONNECTIVITY: Outfitted with 2x Full-Featured Type-C ports for data transfer, fast charging, and dual-monitor output, alongside 2x USB 3.2 Gen1 ports and a 3.5mm audio jack for complete peripheral compatibility
  • LIGHTWEIGHT & SILENT OPERATION: Slim and portable for effortless travel or commuting. Features a 1MP HD webcam for remote meetings, 38Wh battery with 45W Type-C fast charging, and a fanless silent design for peaceful work environments.

Compare the two environments on the same axes

Axis Windows run iPhone or iPad run What a difference suggests
Browser and driver Browser version, ChromeDriver version Safari version, safaridriver or bridge version Compatibility or release regression
Automation stack Selenium binding and WebDriver Selenium plus Appium/XCUITest and WebDriverAgent when used Bridge or session-state issue
Execution mode Headed, headless, service or RDP Device automation window Display dependency or isolated context
Geometry Window rectangle, CSS viewport, scale Device viewport and scale Responsive layout or element-coordinate failure
Modal state Alert, prompt, permission dialog Safari or system prompt Blocked screenshot command
Output Absolute path, account, permissions Bridge-returned image or host path File I/O versus transport failure
Error identity Boolean, exception and status HTTP status and device logs Separates layers instead of blaming the OS

A diagnostic sequence that usually isolates the cause

  1. Record OS or device, browser and browser version, Selenium binding, driver or Appium version, headed/headless mode, window rectangle, scale when available, current URL and the complete exception.
  2. Reproduce on a minimal page with the documented page screenshot method.
  3. Run an element screenshot separately. Page failure points to the session or renderer; element-only failure points to layout, selector or coordinates.
  4. Use a fixed window size and an absolute writable PNG path. Check the Boolean return and file size.
  5. Run a controlled headless test with a fixed --window-size. Add legacy flags only when version-specific documentation or logs support them.
  6. Check ChromeDriver release notes and align browser and driver versions, especially when alerts or headless mode are involved.
  7. For iOS, verify WebDriver enablement and the automation bridge, then repeat on another model only after the same page and software versions are controlled.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshooting by symptom

save_screenshot() returns False

Treat this as an output failure first: verify the absolute directory, account permissions, extension, free disk space and resulting file size. If the path is valid, rerun with driver logs to rule out a renderer or session error.

“No such file or directory” or access denied

Create the parent directory before navigation and write to a path owned by the test account. Avoid protected Windows locations and confirm that a service account, not your interactive account, is running the test.

Unknown error, HTTP 500 or timeout

Capture the full response, current URL, browser log and driver log. Check for an alert, a crashed tab, a hung page load or a known browser-driver regression. Start a new session after a crash rather than reusing the old one.

Blank or partially rendered image

Wait for a stable application condition, not merely a fixed sleep: wait for a selector, document state or network-idle condition implemented by your test. Lazy images and animations may still be changing. For diagnosis, disable animation with test CSS and compare a screenshot after the target element is visible.

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

Wrong dimensions or clipped content

Log the actual window rectangle and PNG dimensions. Set the viewport explicitly, distinguish viewport size from full-page capture, and test at the responsive breakpoint that matters. A maximized window is not a reproducible specification.

Best Value
Sale
15.6 Inch Win 11 Laptop Computer, N4020, 4GB DDR4 RAM, 128GB Storage
  • WINDOWS 11 | STABLE PERFORMANCE: Powered by Intel Celeron N4020 processor and Windows 11 system, this laptop delivers stable performance for everyday computing tasks. It supports web browsing, online learning, document editing, email communication, and basic office work with optimized power efficiency, providing a practical and reliable experience for essential daily use for daily use.
  • 15.6” FHD IPS DISPLAY: Features a 15.6-inch Full HD IPS display with narrow bezels, offering wider viewing angles and clearer image details compared to standard panels. The improved screen-to-body ratio enhances visual experience for study, reading, document work, and video playback, making it suitable for both productivity and entertainment use.
  • 4GB DDR4 + 128GB eMMC STORAGE: Equipped with 4GB DDR4 memory and 128GB eMMC storage for everyday basics such as browsing, documents, email, and online learning platforms. The built-in TF card slot supports storage expansion up to 1TB, giving you more flexibility for files, photos, videos, and daily documents. TF card not included.
  • CONNECTIVITY & PORTS: Includes 1× TF card slot, 2× USB 3.2 Gen1 ports, and 2× full-featured Type-C ports (USB 3.2 Gen1). The Type-C ports support data transfer, charging, and video output, enabling flexible connection with external devices such as monitors, storage, and peripherals for daily work and study use.
  • LIGHTWEIGHT DESIGN | ONLINE COMMUNICATION: Designed with a slim, portable profile, this laptop is easy to carry for school, commuting, and travel. A built-in 1MP front camera supports online classes, video meetings, remote communication, and everyday conferencing. The 3300mAh battery works with the low-power system design to support practical daily use, while thermal optimization helps maintain quieter operation during extended tasks.

Only element screenshots fail

Confirm the selector resolves to one current element, scroll it into view, wait for layout stability and check that it is not inside a stale frame or shadow-DOM context. A working page screenshot proves the session can render; it does not prove element coordinates are valid.

Reliability and cost considerations

For a test suite, determinism is usually more valuable than a particular operating system. Pin browser and driver versions, use a known viewport, preserve logs and artifacts, and separate rendering assertions from filesystem assertions. Keep retries limited and classify failures before retrying. A fresh session can recover from a crashed browser; it cannot repair a mismatched driver or unwritable directory.

There is no published prevalence statistic establishing that Windows fails more often than iOS for this exact comparison. The evidence supports a troubleshooting hypothesis based on platform, session and release behavior, not a measured cross-platform law.

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

Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server for developers. One GET request returns PNG, JPEG, WebP or PDF without maintaining a Selenium browser session:

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()));

See the ScreenshotNeo documentation for request options. Before capture it accepts cookie or consent banners and removes more than 60 known consent platforms, newsletter popups and chat widgets; each cleanup step can be disabled. Bot checks, CAPTCHAs, blank pages, timeouts, failed loads and cache hits are not billed, and response headers identify the page verdict and whether the request was billed. Its MCP server lets Claude, Cursor and other MCP clients call take_screenshot, get_page_info and capture_pdf. You can also set viewport and device presets, full-page or CSS-selector capture, dark mode, retina scale, custom CSS/JavaScript, waits, request blocking, headers, cookies, user agent, timezone, geolocation, transparent backgrounds, resizing, caching, signed links, asynchronous webhooks and bulk capture.

The Free plan includes 1,000 screenshots per month with no card. Paid plans start at $5 for 3,000 shots; every feature is available on every plan. Create a free ScreenshotNeo account to try it.

Frequently Asked Questions

Can an API screenshot replace Selenium in an interaction test?

No. Selenium remains the right tool when you must click, type, inspect DOM state or verify a user flow. An API is useful when the requirement is repeatable visual capture, PDFs or agent-driven screenshots without hosting a browser session.

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

Should I compare operating systems before comparing browser versions?

Compare the complete browser, driver, binding and automation-stack versions first. An OS comparison made with different versions or viewports cannot identify the cause.

Quick Recap

Bestseller No. 1
HP 14' HD Laptop, Windows 11, Intel Celeron Dual-Core Processor Up to 2.60GHz, 4GB RAM, 64GB SSD, Webcam, Dale Pink (Renewed)
HP 14" HD Laptop, Windows 11, Intel Celeron Dual-Core Processor Up to 2.60GHz, 4GB RAM, 64GB SSD, Webcam, Dale Pink (Renewed)
14" diagonal, 1366x768 resolution, HD BrightView LED, Glossy NON-TOUCH Display
$247.99
Bestseller No. 2
Dell Latitude 3190 11.6' HD 2-in-1 Touchscreen Laptop Intel N5030 1.1Ghz 4GB Ram 128GB SSD Windows 11 Professional (Renewed)
Dell Latitude 3190 11.6" HD 2-in-1 Touchscreen Laptop Intel N5030 1.1Ghz 4GB Ram 128GB SSD Windows 11 Professional (Renewed)
1.1 GHz (boost up to 2.4GHz) Intel Celeron N5030 Quad-Core; 4GB DDR4 System Memory; 128GB Solid State Drive
Bestseller No. 3
Dell Latitude 5420 14' FHD Business Laptop Computer, Intel Quad-Core i5-1145G7, 16GB DDR4 RAM, 256GB SSD, Camera, HDMI, Windows 11 Pro (Renewed)
Dell Latitude 5420 14" FHD Business Laptop Computer, Intel Quad-Core i5-1145G7, 16GB DDR4 RAM, 256GB SSD, Camera, HDMI, Windows 11 Pro (Renewed)
256 GB SSD of storage.; Multitasking is easy with 16GB of RAM; Equipped with a blazing fast Core i5 2.00 GHz processor.
$289.99

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.