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

Use Selenium to sign in through the website’s normal login form, wait for a site-specific signal that authentication succeeded, open the protected page, wait for its content, and call driver.save_screenshot("screenshot.png"). The method saves the current browser window as a PNG. Login selectors and success signals depend on the site; there is no universal login script.

What you need before you start

  • Python, Selenium, and a compatible browser and WebDriver setup. Selenium’s Python getting-started guide demonstrates creating a Chrome driver and interacting with page controls: Selenium WebDriver getting started.
  • The login URL, protected-page URL, and selectors for that particular site’s login form.
  • A reliable, site-specific condition that indicates authentication succeeded, such as a visible account element or protected-page content.
  • Credentials supplied securely at runtime. Do not commit passwords or session cookies to source control.

The example below uses placeholder URLs and selectors. Adapt them to a site and account you are authorized to access; the code is not tested against a particular login form.

Sign in, wait for the protected page, and save a screenshot

Replace the example URLs, selectors, and success condition with those for the target site. The username and password variables should come from a secure runtime source, not literal strings committed in the script.

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait

# Load credentials from a secure runtime source.
username = ...
password = ...
login_url = "https://example.com/login"
target_url = "https://example.com/account/report"

# Replace these selectors with ones used by the target site.
username_selector = (By.NAME, "username")
password_selector = (By.NAME, "password")
submit_selector = (By.CSS_SELECTOR, "button[type='submit']")
logged_in_selector = (By.CSS_SELECTOR, "[data-account-home]")
content_selector = (By.CSS_SELECTOR, "main")

# Set this to a path the process can write.
screenshot_path = "screenshot.png"

driver = webdriver.Chrome()
try:
    wait = WebDriverWait(driver, 20)
    driver.get(login_url)

    wait.until(EC.visibility_of_element_located(username_selector)).send_keys(username)
    wait.until(EC.visibility_of_element_located(password_selector)).send_keys(password)
    wait.until(EC.element_to_be_clickable(submit_selector)).click()

    # Use a marker that demonstrates successful login on this site.
    wait.until(EC.visibility_of_element_located(logged_in_selector))

    driver.get(target_url)
    wait.until(EC.visibility_of_element_located(content_selector))

    if not driver.save_screenshot(screenshot_path):
        raise OSError(f"Could not write {screenshot_path}")
finally:
    driver.quit()

The expected-condition waits are deliberate: they make the script proceed when an element is visible or clickable, rather than assuming a fixed delay is enough. Selenium’s wait guidance explains that navigation waits for a configured document ready state, which does not guarantee JavaScript-driven application changes have finished: Selenium waits.

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.

Adapt the login success check

Choose a selector that distinguishes a signed-in page from a login page, error message, redirect, or loading state. For one site that might be an account-menu button; for another it could be a heading or a protected report element. The sample’s [data-account-home] is only illustrative.

Choose what the screenshot should show

save_screenshot() captures the current browser window. It does not, in the cited Python API description, promise a full-document capture of content beyond the viewport. If the target requires a full-page image, verify support for your browser and driver; Firefox’s Python API documents full-document screenshot methods including save_full_page_screenshot: Firefox WebDriver API.

The Python WebDriver API documents save_screenshot(filename) as writing a PNG and returning a Boolean that indicates whether the file was saved successfully. It also documents get_screenshot_as_png() for PNG bytes and get_screenshot_as_base64() for a Base64 string when you need image data instead of a file: Python WebDriver API.

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.

Why explicit waits matter

A browser reaching its configured document ready state does not establish that a JavaScript application has rendered the account page or the specific content you want. Selenium describes race conditions between browser state and automation commands as a common source of flaky scripts. Wait for a condition tied to the intended state, and keep the timeout bounded so a failed login or missing element produces a clear failure instead of an indefinite hang.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • After submitting the form, wait for an authenticated-state marker.
  • After opening the protected URL, wait for the actual content to be visible.
  • Avoid treating a successful driver.get() call as proof that login succeeded.
  • A blind fixed sleep can be too short when a page is slow and unnecessarily long when it is fast.

Reusing an existing authenticated session with cookies

WebDriver can retrieve, add, and manage cookies. To add a cookie, the browser must first be on a domain where that cookie is valid. Cookie reuse can be useful when the site’s supported workflow and session design allow it, but it is not a universal login shortcut: domain, path, security scope, expiration, and additional authentication checks can all matter. See Selenium cookie interactions.

Never publish or log session-cookie values. They can grant access to an account, and the Selenium API documentation does not establish how any particular site’s session security works.

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.

Common problems and fixes

Timeout waiting for the login field

The selector may not match the current form, the field may be inside a frame, or the page may not have reached the state you expected. Inspect the site’s form and update the selector. If the control is in an iframe, switch to that frame before locating it.

Timeout waiting for the authenticated marker

The credentials may have been rejected, the site may have redirected to an error or MFA step, or the success selector may be wrong. Check the browser’s current URL and visible page state, then follow the site’s supported login process and choose a marker that exists only after successful authentication.

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.

The saved image shows a login page or incomplete content

Do not capture immediately after submission or navigation. Wait first for a reliable sign-in signal and then for the protected content to become visible. If the page updates asynchronously, identify a more specific element than a generic page container.

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

save_screenshot() returns False or no file appears

Use a writable output path and check the Boolean result. Confirm the process has permission to write to the destination and that the expected filename is being checked in the right working directory.

The screenshot is cropped to the visible window

The standard Python method captures the current window rather than promising a full-document image. Check whether your browser-specific WebDriver provides an appropriate full-page method, or adjust the page and viewport if a viewport capture is what you need.

The browser stays open after an error

Keep driver.quit() in a finally block, as in the example, so the WebDriver session is shut down when login, waiting, or file writing raises an exception.

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

Security, reliability, and cost considerations

  • Automate only accounts and content you are authorized to access, and follow the site’s applicable terms and rules.
  • Keep credentials and session cookies out of source code, logs, screenshots, and shared artifacts. Protect the output image because it may contain personal, confidential, or regulated information.
  • Browser, driver, Selenium version, headless/display configuration, and site behavior can affect results. The Python WebDriver API documentation identified itself as Selenium 4.50.0; confirm the current documentation for the versions used in your project.
  • For repeated captures, account for the time needed to start a browser, sign in, wait for application content, and write the image. The sources here do not establish a universal runtime or reliability figure.

Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server. Its API accepts a URL in one GET request and can return a PNG, JPEG, WebP, or PDF. For a protected page, supply the authentication details the site supports through the API’s documented options; this one-call example is for a public URL and does not itself sign in to an account.

See the ScreenshotNeo API documentation for authentication and request options.

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

ScreenshotNeo accepts cookie and consent banners like a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each step can be turned off. Bot checks, blank pages, failed loads, timeouts, and cache hits cost nothing, and response headers report the page verdict and whether the request was billed. Its MCP server provides take_screenshot, get_page_info, and capture_pdf for AI agents and other MCP clients. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 shots. Sign up for free and get 1,000 screenshots a month with no card.

Frequently Asked Questions

Does Selenium’s standard Python screenshot method save a full webpage?

No full-document guarantee is stated for save_screenshot(); it captures the current browser window. Full-page capture depends on browser-specific WebDriver support.

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

Can I use a saved cookie instead of logging in each time?

Possibly, if the target site’s session requirements allow it. WebDriver must be on a domain where the cookie is valid before adding it, and a cookie alone may not satisfy the site’s authentication checks.

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.