Windows 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 reinstallOutdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchUse Selenium’s Java WebDriver screenshot API once per URL, saving each result under a unique filename and recording failures without stopping the batch. The loop is your application’s responsibility—Selenium’s screenshot API captures a browser context or element, not an entire URL list. For full-page images, choose and verify a browser-specific method; a regular screenshot should not be assumed to include the full document.
What this Java workflow does—and does not do
Selenium provides screenshot primitives for a page’s current browsing context and for a specific web element. A bulk catalogue capture is built by applying one of those primitives to each URL in an explicit list. It is not a separate Selenium bulk command. See the official Selenium WebDriver documentation for its Java screenshot examples.
As an Amazon Associate I earn from qualifying purchases.
This guide is for an Indian catalogue in the sense that the target is a catalogue site; no particular Indian operator or website has been tested. Its selectors, consent interface, authentication needs, anti-automation behavior, and request policy are therefore unknown. Confirm you are authorized to capture the pages and follow the site’s terms and appropriate request rate.
Free tools Windows power users keep installed
One-click scans. No signup required.
Capture a URL list in Java
The example below uses Selenium’s Java API and ChromeDriver. It reads one URL per line from a text file, navigates to each URL, waits for the document’s ready state, and saves a viewport screenshot. A failed URL is logged and the loop continues. The ready-state check is a baseline, not proof that a dynamic catalogue has finished rendering.
#1 Best Overall
- PORTABLE SCANNER FOR USE ON-THE-GO — The fastest and lightest mobile single-sheet-fed compact document scanner in its class¹
- QUICK DOCUMENT SCANNING ― This Epson ultra-fast scanner scans a single page as quickly as 5.5 seconds²; Windows and Mac compatible
- VERSATILE PAPER HANDLING ― Portable scanner scans documents up to 8.5 x 72 in; Also easily digitizes receipts and ID cards to make accounting, bookkeeping, and organizing simpler
- INTUITIVE, HIGH-SPEED SOFTWARE — Epson ScanSmart Software³ is a smart tool allowing you to easily scan, review, and save; Stay organized easily with the help of this Epson scanner
- EASY SETUP — USB-powered connect to your computer for quick and simple scanning; No batteries or external power supply required to operate portable document scanner; Standard Connectivity: USB 2.0
Prerequisites: Java, Selenium Java dependencies, a Chrome browser, and a compatible ChromeDriver available to Selenium. The exact dependency and driver setup depends on your project and installed browser; follow the current Selenium setup guidance for your environment.
- Put URLs in
urls.txt. Use one complete URL per line. Blank lines and lines beginning with#are ignored. - Save the following as
BulkScreenshots.java. It creates a directory namedscreenshots; filenames combine a sequence number and a sanitized host. - Run it with your project’s configured Selenium classpath. The output is one PNG per successful URL, plus console messages for failed URLs.
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.time.Duration;
import java.util.List;
import java.util.Locale;
import java.util.concurrent.atomic.AtomicInteger;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.WebDriverWait;
public class BulkScreenshots {
public static void main(String[] args) throws IOException {
Path input = Path.of("urls.txt");
Path outputDir = Path.of("screenshots");
Files.createDirectories(outputDir);
List<String> urls = Files.readAllLines(input).stream()
.map(String::trim)
.filter(line -> !line.isEmpty() && !line.startsWith("#"))
.toList();
WebDriver driver = new ChromeDriver();
AtomicInteger index = new AtomicInteger(0);
try {
for (String url : urls) {
int number = index.incrementAndGet();
try {
driver.get(url);
new WebDriverWait(driver, Duration.ofSeconds(20)).until(d ->
"complete".equals(((JavascriptExecutor) d)
.executeScript("return document.readyState")));
String host = safeHost(url);
Path target = outputDir.resolve(
String.format(Locale.ROOT, "%04d-%s.png", number, host));
Path saved = ((TakesScreenshot) driver)
.getScreenshotAs(OutputType.FILE).toPath();
Files.copy(saved, target);
System.out.println("SAVED " + url + " -> " + target);
} catch (Exception e) {
System.err.println("FAILED " + url + " - " + e.getMessage());
}
}
} finally {
driver.quit();
}
}
private static String safeHost(String url) {
try {
String host = java.net.URI.create(url).getHost();
if (host == null || host.isBlank()) return "page";
return host.toLowerCase(Locale.ROOT).replaceAll("[^a-z0-9.-]", "_");
} catch (IllegalArgumentException e) {
return "page";
}
}
}
The sample uses Files.copy to move the screenshot file returned by WebDriver. If a filename already exists, the copy fails for that URL rather than silently replacing an earlier capture; adjust naming or collision handling if reruns should overwrite or version results. For a production job, write a CSV or database manifest alongside the files with URL, capture time, viewport, outcome, and error.
Choose viewport, element, or full-page output
Viewport screenshot
((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE) captures the current browser context according to the selected browser’s behavior. The example uses this approach. Do not assume it captures content below the viewport.
Recommended Free Tools
Rank #2
- FAST SPEEDS - Scans color and black and white documents a blazing speed up to 16ppm (1). Color scanning won’t slow you down as the color scan speed is the same as the black and white scan speed.
- ULTRA COMPACT – At less than 1 foot in length and only about 1. 5lbs in weight you can fit this device virtually anywhere (a bag, a purse, even a pocket).
- READY WHENEVER YOU ARE – The DS-640 mobile scanner is powered via an included micro USB 3. 0 cable allowing you to use it even where there is no outlet available. Plug it into you PC or laptop and you are ready to scan.
- WORKS YOUR WAY – Use the Brother free iPrint&Scan desktop app for scanning to multiple “Scan-to” destinations like PC, Network, cloud services, Email and OCR. (2) Supports Windows, Mac and Linux and TWAIN/WIA for PC/ICA for Mac/SANE drivers. (3)
- OPTIMIZE IMAGES AND TEXT – Automatic color detection/adjustment, image rotation (PC only), bleed through prevention/background removal, text enhancement, color drop to enhance scans. Software suite includes document management and OCR software. (4)
Element screenshot
When only a product card, table, or other region is needed, locate the corresponding WebElement and call element.getScreenshotAs(OutputType.FILE). Selenium’s official documentation includes an element screenshot example. A missing or changing selector can fail, so use a selector tied to the actual catalogue markup and handle elements that are absent.
Full-page screenshot
Full-document capture is browser- and method-sensitive. One secondary Java/Selenium tutorial describes FirefoxDriver’s getFullPageScreenshotAs(OutputType.FILE) and a Chrome DevTools Protocol route; verify those against the Selenium and browser versions installed in your environment and a representative long page. See iTechGuides’ full-page Selenium discussion, dated September 29, 2026.
Another approach resizes the Chrome window to document.documentElement.scrollWidth and scrollHeight before taking a screenshot. A tutorial demonstrates that technique, but it is not a universal full-page API: the resize can trigger responsive breakpoints or produce an unwieldy raster. Validate the output against the page at its intended viewport. See HTML to Image’s Java and Selenium example.
Rank #3
- STAY ORGANIZED – Easily convert your paper documents into digital formats like searchable PDF files, JPEGs, and more.Power Consumption : 2.5W or less (Energy Saving Mode: 0.7W). Suggested Daily Volume : 500 scans..Does it contain liquid: no
- CONVENIENT AND PORTABLE –lightweight and small in size, you can take the scanner anywhere from home offices, classrooms, remote offices, and anywhere in between
- HANDLES VARIOUS MEDIA TYPES – Digitize receipts, business cards, plastic or embossed cards, reports, legal documents, and more
- FAST AND EFFICIENT – No technical hurdles or complicated setups here; easily scan both sides of a document at the same time, in color or black-and-white, at up to 12 pages-per-minute, and with a 20 sheet automatic feeder
- BROAD COMPATIBILITY – Works with both Windows and Mac devices, be it laptop or computer
For pages with lazy-loaded product images, scrolling through the document before capture may be needed to trigger loading. Treat this as a page-specific check, not a guarantee. Sticky headers, animation, overlays, and responsive behavior can affect the result; inspect sample captures before running a large batch.
Make the batch reliable and comparable
Readiness and failures
- Wait for a condition that reflects the page you need, such as a known catalogue container or product selector.
document.readyState == "complete"does not establish that client-side content or images have finished loading. - Keep each URL inside its own error boundary, as in the example, so one bad URL does not discard successful screenshots.
- Record failures with enough detail to retry them. Distinguish malformed URLs, navigation timeouts, missing selectors, browser startup errors, and pages that render an access challenge.
- Use a bounded timeout and a clear retry policy. Repeatedly retrying a blocked or unavailable page can waste time and send unnecessary requests.
Stable filenames and output records
A host alone is not unique when the list contains multiple pages on the same site. Use a stable catalogue item ID or a hash of the full URL in production filenames, and sanitize it for the operating system. Keep the original URL in a manifest so filenames remain traceable even when the path contains unusual characters.
Consistent visual conditions
For catalogue audits or before-and-after comparisons, keep browser version, viewport dimensions, device scale, locale, timezone, authentication state, and page-ready condition consistent. Differences in these conditions can change responsive layout or dynamic content independently of the catalogue itself.
Sequential first, then consider parallelism
A sequential run is easier to diagnose and is a sensible starting point. If you parallelize, assign each worker its own WebDriver session and unique output paths. Measure resource use and failure rates before increasing concurrency; there is no generally established safe worker count or throughput figure for this unnamed catalogue.
Rank #4
- IRIScan Express, portable scanner : scans color and black and white documents a blazing speed up to 8ppm simplex. Color scanning won’t slow you down as the color scan speed is the same as the black and white scan speed.
- IRIScan Express mobile scanner is powered via an included micro USB 2. 0 cable allowing you to use it even where there is no outlet available. Plug it into you PC or laptop and you are ready to scan. USB cable provided. AC Adapter not provided and not needed.
- IRIScan flatbed scanner uses a simplex scanning mode allows for quick and straightforward scanning of single-sided documents. IRIScan with its full portable features is the ideal document scanners for computers.
- IRIScan document scanner : Versatile scanning capabilities, including scanning to Word, PDF, and Excel formats with companion software provided Readiris OCR
- Receipt scanner and card scanner with Additional features include scanning business cards directly to Outlook, photo scanning, and receipt scanning for efficient document management
When a different Java capture route makes sense
| Route | Best fit | Full-page and element notes |
|---|---|---|
| Selenium WebDriver | Existing Java Selenium code and application-managed browser sessions and files. | Official Java material documents driver and element screenshots; verify browser-specific full-page support. Selenium documentation. |
| Percy Selenium integration | A Selenium-based visual-testing workflow where comparison features matter, rather than just saving files. | The integration documents optional fullPage, tied to Percy CLI 1.27.6 or later. Check current terms and availability. Percy Selenium Java repository. |
| Playwright Java | A project willing to use Playwright instead of Selenium. | Official Java docs show setFullPage(true) and locator element capture. Playwright Java screenshots. |
Percy is not required to batch Selenium screenshots. It is relevant when the task includes a visual-testing service workflow; ordinary file capture can stay in the application.
Common errors and fixes
- ChromeDriver cannot start or reports a session creation error: check that Chrome is installed and that the driver setup matches the browser and Selenium configuration. Run one browser session before debugging the URL loop.
- The screenshot is only the visible portion: that is expected for many ordinary browser screenshot calls. Use a verified full-page method for your browser or capture and stitch controlled scroll segments; validate layout and overlaps.
- Images or products are missing: the page may render asynchronously or lazy-load below the fold. Wait for a relevant selector or image condition and, if appropriate, scroll in a controlled way before capture.
- Some captures show a consent panel, chat widget, or anti-automation page: behavior is target-site-specific. Confirm permission and access requirements; do not assume Selenium bypasses site controls.
- Files overwrite or the batch stops on one page: use collision-safe names and keep per-URL exception handling. Preserve successful files and record failed URLs separately.
- Screenshots differ unexpectedly: align viewport, browser version, locale, timezone, login state, and readiness condition before treating differences as catalogue changes.
Or skip the browser setup
ScreenshotNeo is a website screenshot API and MCP server for developers. One GET request returns an image or PDF, so you do not need to manage a Selenium browser session for a simple URL capture. Its clean-shot handling accepts cookie or consent banners like a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each cleanup step can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers report page verdict and billing status. Its MCP server provides take_screenshot, get_page_info, and capture_pdf for AI agents using Claude, Cursor, or another MCP client.
For a single catalogue page, the cURL request is:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
Replace the example target URL with an authorized catalogue URL. The API accepts the same parameter names other screenshot APIs use, which can make switching straightforward. See the ScreenshotNeo API documentation for the available parameters, including output format and capture options.
With 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)
With 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}`);
The free plan includes 1,000 screenshots per month without a card; paid plans start at $5 for 3,000. Every feature is available on every plan. Sign up for 1,000 free screenshots a month, with no card.
Best Value
- Scanner type: Document
- Connectivity technology: USB
- With Auto Scan Mode, the scanner automatically detects what you're scanning
- Digitize documents and images
Frequently Asked Questions
Can Selenium take screenshots of several URLs in one command?
No separate bulk screenshot command is documented here; the Java example loops over the URL list and captures each page individually.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsDoes the Java example capture a full webpage?
No. It demonstrates a viewport capture; full-page capture requires a browser-specific method that you verify for your installed versions.
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.




