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

Both Chrome DevTools Protocol (CDP) and Selenium can capture automated website screenshots. Use CDP when you target Chrome or Chromium and want direct capture controls such as clipping or capture beyond the viewport; use Selenium when screenshots belong to a broader WebDriver test suite, particularly one that may run across browsers or remotely. Neither is established as universally faster or more reliable: benchmark representative pages in your own environment.

How the screenshot approaches differ

Chrome DevTools Protocol is a browser-instrumentation protocol for Chrome, Chromium and other Blink-based browsers. Its Page.captureScreenshot command exposes capture options directly. Selenium WebDriver is a broader browser automation interface; its screenshot operations fit into the same workflow as navigation, element lookup and other test actions.

In Selenium documentation, the relevant operations are named TakeScreenshot for the current browsing context and TakeElementScreenshot for an element. That makes the practical choice less about whether either can take a screenshot and more about the browser scope, capture controls and automation stack you need.

What CDP lets you control

The CDP Page domain documents PNG, JPEG and WebP output formats, JPEG quality, a viewport clip, and a captureBeyondViewport option. The response contains Base64-encoded image data. See the Page domain reference for the current command schema.

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.

Here is a minimal Node.js example using Chrome’s DevTools Protocol through Puppeteer. It navigates to a URL, captures a full-page PNG and closes the browser:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({ headless: true });
  try {
    const page = await browser.newPage();
    await page.setViewport({ width: 1440, height: 900 });
    await page.goto('https://example.com', { waitUntil: 'networkidle0' });

    const client = await page.createCDPSession();
    const result = await client.send('Page.captureScreenshot', {
      format: 'png',
      captureBeyondViewport: true
    });
    require('fs').writeFileSync('screenshot.png', Buffer.from(result.data, 'base64'));
  } finally {
    await browser.close();
  }
})();

The example uses Puppeteer to launch and manage Chrome; the screenshot call itself is CDP. For a clipped capture, pass a clip object containing the capture rectangle and scale as defined by the protocol reference. For JPEG, set format: 'jpeg' and supply quality as supported by the current schema. CDP’s live tip-of-tree documentation changes frequently and does not guarantee backward compatibility, so verify the schema against the browser version you pin.

What Selenium screenshots cover

Selenium exposes a screenshot of the current browsing context and screenshots of individual elements. The documented WebDriver screenshot endpoint returns Base64-encoded data; Selenium’s language bindings provide convenient ways to save it. WebDriver can drive browsers locally or remotely, which is useful when screenshots are one stage in a wider test workflow. See Selenium’s windows and tabs documentation for screenshot examples and WebDriver overview for the broader automation model.

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.

Python example using Selenium 4:

from selenium import webdriver
from selenium.webdriver.common.by import By

options = webdriver.ChromeOptions()
options.add_argument("--headless=new")
driver = webdriver.Chrome(options=options)
try:
    driver.set_window_size(1440, 900)
    driver.get("https://example.com")
    driver.save_screenshot("page.png")

    element = driver.find_element(By.CSS_SELECTOR, "main")
    element.screenshot("main.png")
finally:
    driver.quit()

The first file captures the current browsing context. The second captures the selected element. Ensure your selector matches an element present on the page; if it does not, Selenium raises an element lookup error rather than producing the element image.

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.

Choose based on browser scope and workflow

Decision CDP Selenium WebDriver
Browser target Best suited to Chrome/Chromium-centered capture and other Blink-based browsers. Fits a broader browser automation workflow, including cases where browser choice matters.
Capture controls Direct protocol parameters for format, JPEG quality, clipping and beyond-viewport capture. Convenient current-context and element screenshot operations.
Existing test stack Good fit when the automation is already protocol-oriented or needs browser instrumentation. Good fit when screenshots are part of an existing WebDriver suite and its interactions.
Remote execution Depends on how the CDP client connects to and manages the browser. WebDriver supports locally or remotely driven browsers.
Browser events Provides Chromium instrumentation, with protocol-version compatibility to consider. WebDriver BiDi adds a WebSocket path for bidirectional, event-driven automation.
  • Choose CDP for Chrome-specific capture when you need its protocol-level options, especially clipping or capture beyond the viewport.
  • Choose Selenium when screenshots are part of a larger browser test suite or you need WebDriver’s local/remote execution model.
  • Consider WebDriver BiDi when event streaming and cross-browser automation are important. Selenium describes BiDi as the cross-browser replacement for CDP; its actual support depends on browser and implementation.

Official documentation describes capabilities and architecture, not a controlled head-to-head benchmark. It does not establish a universal winner for speed, image fidelity or flakiness.

Make screenshot runs reproducible

A screenshot comparison is only useful when the environment and page state are controlled. Chrome’s guidance recommends Chrome for Testing, a dedicated testing and automation flavor with versioned downloads; matching ChromeDriver versions are released with each Chrome for Testing version. Pin both rather than allowing browser and driver versions to drift. See Chrome’s automation and testing guidance.

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.
  • Pin the browser build and matching driver or automation dependencies.
  • Set viewport dimensions and device scale factor explicitly.
  • Keep fonts, test data, timezone and other environment inputs consistent.
  • Wait for the page state your test actually needs; network idle alone may not indicate that every dynamic component has settled.
  • Where visual diffs matter, control animations and validate behavior on the pages and CI environment you use.

These are practical controls to test in your environment; the official sources do not quantify how much each changes cross-tool screenshot accuracy.

Common failures and fixes

CDP command or parameter is rejected

The protocol schema can vary by browser version, and the live tip-of-tree reference is not a backward-compatibility promise. Check the Page domain reference for the browser you run, pin that browser build, and use only parameters it supports.

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

The screenshot is clipped or misses content

Confirm whether you want the viewport, an element or content beyond the viewport. Selenium’s element screenshot is not equivalent to a full-page capture; CDP offers clip and beyond-viewport controls. Set the viewport deliberately and inspect the page dimensions before choosing a capture method.

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

Selenium cannot find the element

Verify the CSS selector and wait for the element to exist before calling find_element. A selector that is valid for another page state or frame will not identify the intended element in the current context.

Repeated screenshots differ

Compare browser build, viewport, device scale factor, fonts, page readiness, animation state and test data between runs. Those inputs should be held constant before attributing a difference to CDP or Selenium.

Chrome and ChromeDriver do not work together

Use a matching Chrome for Testing browser and ChromeDriver release, and keep the selected versions fixed in local and CI environments.

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.
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 screenshots without maintaining a browser automation environment, ScreenshotNeo offers a one-request screenshot API and an MCP server for AI agents. Cookie banners are accepted and removed along with supported newsletter popups and chat widgets before capture; bot checks, blank pages and failed loads are not billed. AI agents can use its MCP tools for screenshots, page information and PDF capture. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 screenshots.

cURL example, using ScreenshotNeo’s API documentation:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp

Sign up for 1,000 free screenshots a month, with no card required.

Sources

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.

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