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

For a full-page screenshot in Selenium Java, use FirefoxDriver’s getFullPageScreenshotAs(OutputType.FILE) method. Selenium’s standard TakesScreenshot call captures the visible viewport, not necessarily the entire document. For Chrome, the available full-page route is a version-specific Chrome DevTools Protocol (CDP) command rather than a cross-browser WebDriver method.

Use FirefoxDriver’s full-page method

Selenium’s Firefox Java driver has a dedicated method for capturing a full-page screenshot. The method is getFullPageScreenshotAs(OutputType<X>); passing OutputType.FILE returns a file you can copy to a known destination. This is the most direct documented Java path in the references available for this topic.

The method belongs to FirefoxDriver, not the general WebDriver interface. Declare the driver as a FirefoxDriver if you want to call it directly. The example below expects Selenium Java on the classpath, Firefox installed, and a working driver setup. It adapts the documented API signature; it has not been run as a compatibility test.

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;

import org.openqa.selenium.OutputType;
import org.openqa.selenium.firefox.FirefoxDriver;

public class FullPageScreenshot {
    public static void main(String[] args) throws IOException {
        FirefoxDriver driver = new FirefoxDriver();
        try {
            driver.get("https://example.com");

            File screenshot = driver.getFullPageScreenshotAs(OutputType.FILE);
            Path destination = Path.of("screenshots", "example-full-page.png");
            Files.createDirectories(destination.getParent());
            Files.copy(screenshot.toPath(), destination,
                    StandardCopyOption.REPLACE_EXISTING);

            System.out.println("Saved screenshot to " + destination.toAbsolutePath());
        } finally {
            driver.quit();
        }
    }
}

OutputType.FILE makes the returned value a File, which is useful when saving an artifact. Create the destination directory before copying, as the example does. Copy the returned file promptly to the location your application controls; do not treat Selenium’s returned file as a durable archive. The method’s output type is generic, so select the representation your calling code needs rather than assuming the method itself chooses a permanent path.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter
  • Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
  • Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
  • Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
  • Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
  • 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.

Wait for the content you intend to capture

Navigate to the page, then wait for the application state that matters before capturing. A successful navigation does not necessarily mean a single-page app has finished rendering its content, or that a delayed panel, chart, or image is ready. Prefer an explicit condition tied to the page, such as waiting for a known element to become visible, over an arbitrary pause where possible. The right condition is application-specific; Selenium’s full-page method does not itself guarantee that asynchronous content has settled.

Lazy-loaded content needs particular care. Some sites load images and other resources only as a visitor scrolls. A full-page screenshot API should not be assumed to trigger every lazy load or wait for every offscreen asset. If missing images matter, test how the target page behaves and prepare it accordingly—for example, by scrolling through relevant areas and waiting for the assets your page uses. There is no universal scroll-and-wait recipe that guarantees all pages will load completely.

Why the ordinary Selenium screenshot call is not full-page

The generic Java pattern is useful for a screenshot of what is visible in the browser window:

File screenshot = ((TakesScreenshot) driver)
        .getScreenshotAs(OutputType.FILE);

The WebDriver specification defines the standard Take Screenshot command as capturing the top-level browsing context’s visual viewport. That makes TakesScreenshot the portable baseline for a viewport image, not a reliable cross-browser synonym for “capture the entire document.” Selenium separately documents screenshots of individual elements; an element screenshot is likewise not the same as a full-page document screenshot.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter
  • 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
  • 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
  • Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
  • 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
  • What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.

Maximizing the window or entering fullscreen changes the browser’s window dimensions. It does not change the specified scope of the standard screenshot command from the visual viewport to the whole document. If the requirement is a page from top to bottom, use a documented full-page mechanism rather than expecting a larger window to produce one.

Chrome: use the matching Selenium DevTools binding

For Chrome, Selenium’s Java DevTools bindings expose the CDP Page.captureScreenshot command and, in the reviewed binding, a captureBeyondViewport parameter. This is a browser-specific, lower-level route: it is not the generic WebDriver screenshot API, and its Java types are versioned.

The documented example is specifically Selenium DevTools v124 with Selenium 4.22.0. Do not copy a generated method signature from that artifact into an unrelated Selenium version and assume it will compile or work with the installed browser. Select the DevTools module that matches your Selenium/browser setup, consult that module’s API documentation, and confirm the parameter names and return type there. The cited version establishes that the option exists in that binding; it does not establish compatibility across all Chrome and Selenium combinations.

Because the DevTools command and its Java binding are version-coupled, use Firefox’s explicit FirefoxDriver method when Firefox is acceptable and you want the direct documented full-page API. Use CDP when your target is Chrome and you are prepared to match and maintain the browser-specific binding. Use generic TakesScreenshot when the visible viewport—not the complete document—is the intended result.

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.
Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter
  • Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
  • Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
  • Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
  • Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
  • What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.

Choose the capture method by the result you need

Approach What it captures Browser and API considerations
FirefoxDriver.getFullPageScreenshotAs(...) Full page, according to the FirefoxDriver API documentation Firefox-specific Java driver method; use a FirefoxDriver reference.
TakesScreenshot.getScreenshotAs(...) The visual viewport under the standard WebDriver screenshot command General WebDriver screenshot pattern; not a guaranteed full-document capture.
CDP Page.captureScreenshot Can request capture beyond the viewport using the relevant CDP option Chrome-specific DevTools route. The reviewed Java binding is v124 in Selenium 4.22.0; match the installed versions.
WebElement.getScreenshotAs(...) A particular element Separate Selenium behavior; useful for an element image, not a full-page document screenshot.

Save and use the screenshot reliably

Pick a stable output path

Store the image somewhere your test runner or application can retrieve it: for example, a build-artifact directory, a test-results folder, or a path supplied through configuration. The example creates its destination directory and replaces an existing file with the same name. For repeated captures, include a test name or timestamp in the filename so a later run does not overwrite an artifact you still need.

Choose the output type deliberately

OutputType.FILE is convenient for file handling, while other output types may suit callers that need a different representation. Keep the result’s lifetime in mind: if you need a durable file, copy or move it to your chosen destination as part of the capture flow. Handle filesystem errors separately from browser errors so a failed save is not mistaken for a failed page capture.

Account for page-specific behavior

  • Dynamic rendering: wait for a meaningful application condition before capturing; a navigation event alone may precede the final UI.
  • Lazy-loaded resources: verify whether scrolling or another page-specific action is required to trigger content below the fold.
  • Sticky elements: a full-page image can interact with fixed or sticky page elements in ways that vary by browser and page. Inspect the output rather than assuming headers will appear only once.
  • Frames: the standard WebDriver screenshot scope is the top-level browsing context’s visual viewport. Do not infer from that definition how a browser-specific full-page method will render every frame arrangement; verify your target page.
  • Very long pages: image dimensions and memory requirements depend on the page and browser. The cited API references do not specify a universal maximum or performance guarantee.

Troubleshooting

The code does not compile: method not found

Check the declared driver type and the Selenium Java API version. getFullPageScreenshotAs is documented on FirefoxDriver; a variable typed only as WebDriver does not expose that method. If using Chrome CDP, check that the DevTools module and generated API match the Selenium version in your project.

The image shows only the visible part of the page

Confirm that the code called FirefoxDriver’s full-page method, rather than the standard TakesScreenshot method. The latter captures the visual viewport under the WebDriver specification. In Chrome, confirm the selected CDP call uses the appropriate beyond-viewport option in the binding you actually installed.

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.
Rank #4
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray
  • Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
  • Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
  • Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
  • Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
  • Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft

The screenshot is blank, incomplete, or missing images

First check whether the page had finished rendering and whether its content is loaded on demand. Add a wait for the specific content you need; for lazy-loaded media, determine whether the page must be scrolled before capture. Since the sources do not establish universal behavior for these cases, inspect a capture from the actual page and browser you use.

The screenshot exists but the application cannot find it

Print or log the absolute destination path, verify the process has permission to write there, and create parent directories before copying. If you save the returned file directly, make sure downstream code consumes it before its temporary-file lifecycle ends; copying it to an application-owned path avoids relying on that temporary location.

Maximizing the browser did not produce the whole page

That changes the window size, not the standard command’s capture scope. Switch to the explicit full-page Firefox method or the matching Chrome DevTools route instead of adding more window-size adjustments.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup

If you need a screenshot from a URL without setting up Selenium and a browser driver, ScreenshotNeo is a website screenshot API. Its one-call GET endpoint can return PNG, JPEG, WebP, or PDF. For example, this cURL request saves a WebP response:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp

See the ScreenshotNeo API documentation for request options and response details. Before a capture, it accepts cookie or consent banners like a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each of those steps can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and the response identifies the page verdict and billing status in X-Page-Verdict and X-Billed headers. It also has an MCP server with take_screenshot, get_page_info, and capture_pdf tools for AI agents and MCP clients.

The Free plan includes 1,000 screenshots per month with no card required; paid plans start at $5 for 3,000. Sign up for 1,000 free screenshots a month—no card required.

Frequently Asked Questions

Can I call the Firefox full-page method through a variable declared as WebDriver?

Not directly: the documented method is on FirefoxDriver. Keep a FirefoxDriver reference where you need that method, or use an API available on the declared interface.

Does full-page capture guarantee that every image below the fold has loaded?

No. Lazy-loaded media and application rendering are page-specific; wait for and trigger the content your capture requires.

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

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.