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

Short answer: SeleniumLibrary’s Capture Page Screenshot is the normal starting point, but it usually captures only the visible browser viewport. To save the whole document as one image, use a browser/driver full-page command when your driver supports one. Otherwise, measure the document, resize the window for a single capture, or capture overlapping scroll segments and stitch them. Always wait for dynamic content and restore the original window size.

What Robot Framework captures by default

SeleniumLibrary documents Capture Page Screenshot as taking a screenshot of the current page and embedding it into the log file. With an optional filename, it writes to the configured screenshot directory (or the Robot Framework log directory by default) and returns the path. In ordinary use, the result is a viewport screenshot, not a guaranteed image of every pixel in the document.

That distinction explains why a long page can appear to be missing its lower sections. A failure screenshot may show exactly what the browser viewport contained at the instant of failure. Full-document coverage depends on the browser driver and on how you implement the capture.

Prepare a repeatable SeleniumLibrary test

Set an explicit output directory, use indexed names, and wait for the page’s meaningful content before measuring or capturing it.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
ELEGOO UNO R3 Smart Robot Car Kit V4 with Camera, Compatible with Arduino
  • BUILD, CODE & DRIVE YOUR OWN ROBOT CAR: Turn coding, electronics and engineering into a working programmable robot car you can assemble, program and drive; ideal for weekend family projects, STEM classrooms, coding clubs, robotics lessons and maker challenges
  • EXPLORE FPV, LINE TRACKING & OBSTACLE AVOIDANCE: Control the robot with the ELEGOO app or IR remote, view live FPV video through the onboard camera, follow black lines, avoid obstacles with the ultrasonic sensor and explore multiple interactive driving modes
  • BEGINNER-FRIENDLY BUILD WITH GUIDED WIRING: Keyed XH2.54 connectors help reduce wiring mistakes, while the illustrated tutorial and example programs guide beginners step by step from chassis assembly and module connection to programming and the first successful run
  • GO BEYOND ASSEMBLY WITH CREATIVE CODING: Program with Arduino IDE to explore movement, sensors and control logic, then modify example code to create custom routes, reactions and robotics experiments that develop coding, problem-solving and engineering skills
  • COMPLETE RECHARGEABLE STEM ROBOTICS KIT: Includes an ELEGOO UNO R3 controller board, ESP32-WROVER-based camera and Wi-Fi module, line-tracking and ultrasonic sensors, motors, IR remote and a 2000 mAh rechargeable lithium-ion battery; recommended for ages 8+ with adult guidance for first-time builders
*** Settings ***
Library    SeleniumLibrary

*** Variables ***
${URL}    https://example.com

*** Test Cases ***
Capture viewport evidence
    Open Browser    ${URL}    chrome
    Set Screenshot Directory    ${OUTPUTDIR}/screenshots
    Wait Until Page Contains Element    css:main    30s
    Capture Page Screenshot    example-viewport-{index}.png
    [Teardown]    Close All Browsers

{index} is replaced with an incrementing number, preventing repeated runs from overwriting earlier artifacts. SeleniumLibrary also supports EMBED to place the image in log.html and, in supported versions, BASE64 to return an encoded image while embedding it. Use a stable directory when CI needs to publish the files separately from Robot’s HTML report.

Method 1: use a driver-specific full-page command

Some browser drivers expose a native full-page screenshot operation. This is the most faithful approach when available because the driver performs the capture rather than relying on a window that may be subject to operating-system limits. The exact command and support vary by browser, driver version, and headless mode, so keep this path behind a small custom keyword and verify it on every browser/driver combination in your matrix.

Do not describe Capture Page Screenshot itself as a universal full-page command. If your selected driver has no document-screenshot capability, use the resizing or stitching patterns below.

Method 2: resize to the document dimensions

A practical fallback is to read the document’s total dimensions, enlarge the browser window, capture, and restore the original size. The JavaScript values document.documentElement.scrollWidth and scrollHeight include content outside the current viewport.

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

*** Test Cases ***
Capture resized full page
    Open Browser    https://example.com    chrome
    Set Screenshot Directory    ${OUTPUTDIR}/screenshots
    Wait Until Page Contains Element    css:main    30s
    Sleep    1s
    ${old_width}    ${old_height}=    Get Window Size
    ${page_width}=    Execute Javascript    return Math.max(document.documentElement.scrollWidth, document.body ? document.body.scrollWidth : 0);
    ${page_height}=    Execute Javascript    return Math.max(document.documentElement.scrollHeight, document.body ? document.body.scrollHeight : 0);
    Set Window Size    ${page_width}    ${page_height}
    Capture Page Screenshot    example-full-{index}.png
    Set Window Size    ${old_width}    ${old_height}
    [Teardown]    Close All Browsers

This is an implementation pattern, not a Selenium guarantee. Window managers and headless drivers can impose maximum dimensions; a very tall page can exceed image-memory limits; and resizing can trigger responsive breakpoints. Record the resulting image dimensions and inspect a representative long page in the same environment used by CI.

Rank #2
ELEGOO Mega 2560 R3 Project The Most Complete Starter Kit with Tutorial
  • 35+ Guided Electronics Projects: Progress from LEDs and buttons to RFID access, real-time clocks, motion and distance sensing, environmental monitoring, motor control and interactive displays for STEM learning, coding clubs and maker projects
  • More I/O and Memory for Larger Builds: The MEGA 2560 R3 provides 54 digital I/O pins, including 15 PWM outputs, 16 analog inputs, 4 hardware serial ports and 256 KB flash for projects that combine more sensors, controls and displays
  • 200+ Components for Prototyping: Includes LCD1602, RC522 RFID, RTC, DHT11, HC-SR501 PIR, ultrasonic and water-level sensors, GY-521, MAX7219, keypad, joystick, rotary encoder, relay, SG90 servo, stepper motor, DC motor, breadboard and more
  • Learn, Modify and Create: Follow 35+ guided lessons with example code, then adjust sensor thresholds, timing, display text, motor behavior and control logic to turn structured exercises into access systems, monitors, alarms and interactive projects
  • Organized for Repeatable Learning: Pre-soldered modules, a solderless breadboard, storage case and small-parts box reduce setup time and keep sensors, LEDs, ICs, wires and other components easy to find between projects

Wait before measuring

Measure only after asynchronous content has settled. Wait for a stable landmark, then account for images, fonts, advertisements, and JavaScript that add height after the initial DOM appears.

  • Wait for a page-specific element such as css:main or a “loaded” marker.
  • Use an explicit delay only when the application has no reliable readiness signal.
  • For lazy-loaded sections, scroll through the page first so content is requested before taking the final measurement.
  • Disable animations or apply test CSS where animation changes layout during capture.

Restore the browser in every outcome

If a later assertion fails while the window is enlarged, subsequent tests can inherit the wrong dimensions. Put restoration in a teardown or a custom keyword with a guaranteed cleanup path. Keep the original width and height, not just a hard-coded default.

Method 3: scroll, capture, and stitch

When a driver cannot create a sufficiently large surface, capture overlapping viewport segments and combine them in a Python keyword. Overlap is important: sticky headers, fractional pixel rounding, and asynchronous layout can otherwise create seams or missing rows.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Read the viewport width and height and the document’s scroll height.
  2. Scroll to the first position and wait for layout to settle.
  3. Capture a viewport image.
  4. Advance by less than one viewport height, retaining an overlap.
  5. Repeat until the bottom is covered, then stitch the segments in document order.

During the pass, scrolling may trigger lazy images and alter the page height. Re-read the height after the first sweep, or perform a warm-up scroll from top to bottom and back before collecting final segments. Fixed headers should be cropped from subsequent segments or accounted for by the stitching code; otherwise they appear repeatedly. This method is slower and requires image-processing code, but it avoids asking the browser for an impractically tall window.

Choosing between the approaches

Approach Document coverage Driver dependence Lazy content and sticky headers CI reproducibility Typical trade-off
Native driver full-page command Potentially the whole document High; support varies Still requires page readiness Good when pinned and tested Best fidelity where implemented
Resize and capture Whole document when limits allow Medium Responsive layout can change; lazy content needs warm-up Depends on headless window limits Simple, but very tall pages can fail
Scroll and stitch Whole document after overlap coverage Low to medium Needs explicit handling More moving parts Works when large surfaces do not
Capture Page Screenshot Normally viewport only SeleniumLibrary standard keyword Captures the current state only High for ordinary evidence Fastest, but not a full-page solution

Element and desktop screenshots are different

Capture Element Screenshot targets one located element. SeleniumLibrary warns that element screenshot support is limited by browser-vendor implementation, so it is not a reliable substitute for a whole-document capture.

Robot Framework’s built-in Screenshot library captures the machine desktop. Its documentation requires a physical or virtual display plus a supported operating-system tool or Python module. It is useful for desktop evidence, but it does not guarantee a complete browser document and may include other windows, browser chrome, or the desktop background.

Rank #3
Sillbird STEM Robot Building Kit with Remote Control Gifts for Boys 8-13
  • 🎁Ideal Gift for Kids & Teens: Celebrate child’s growing skills and important milestones with this 5-in-1 Programmable robot set. Whether for birthdays, holidays, or achievements, it’s the perfect gift that encourages learning and hands-on fun—a gift that grows with them
  • ✨STEM Educational Toys: The robot set for kids ages 8+ combines the fun of STEM learning. It encourages hands-on learning and early programming as they build, which can spark creativity and imagination and provide hours of screen-free play
  • 📱Flexible Dual Control Modes: Control the Robotic kit with the intuitive app (Bluetooth) or remote. Enjoy fun features like basic programming, path, and precise movement, exploring endless interactive play
  • 🔄 5-in-1 Buildable with Varying Difficulty: The Robot Kit with Progressive Difficulty! From simple robots to complex models, kids can build a robot, dinosaur, car, tank, and more. Adjustable head, arms, and tail allow for fun, playful poses. Perfect for kids 8-12 to develop skills step by step and ignite creativity
  • 🛠️Clear & Detailed Build Instructions: This robot kit includes 488 pieces, with clear, colorful step-by-step instructions to make assembly easy. Kids can build their own robots independently or with family, enjoying quality time together and a confidence-boosting building experience

Full-page failures and fixes

The image stops at the fold

Cause: the standard keyword captured the viewport. Fix: use a native driver command, the resize pattern, or scroll-and-stitch; confirm the output height rather than trusting the filename.

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

The bottom is blank or missing

Cause: lazy loading or scripts had not completed when dimensions were read. Fix: wait for a stable selector, warm-scroll the page, wait for images or application-specific readiness, then measure again.

Resizing fails or the image is truncated

Cause: operating-system, headless-driver, or image-memory limits. Fix: use a smaller viewport and stitching, or a driver-native full-page operation. Pin browser and driver versions in CI.

Repeated headers or visible seams appear

Cause: fixed or sticky elements are present in every segment, or segments do not overlap. Fix: crop fixed regions in the stitcher, use a consistent scroll position, and retain an overlap between captures.

The page changes after scrolling

Cause: scrolling activated lazy content, ads, animations, or infinite scrolling. Fix: freeze or disable moving components where possible, complete a warm-up pass, and define a stopping condition for infinite pages.

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.

Files overwrite one another

Cause: a fixed filename is reused. Fix: set the screenshot directory and use SeleniumLibrary’s {index} replacement or include a unique test identifier.

Rank #4
Sale
Sillbird 12-in-1 Solar Robot Building Kit STEM Gift for Boys Ages 8-13
  • 🎁 Ideal Gift for Kids & Teens: This STEM solar robot kit celebrates child’s growing skills and important milestones. Whether for birthdays, holidays, it’s the perfect gift that grows with them and offers screen-free fun
  • 📚 STEM Educational Toy: This solar educational toy brings science to life! The fun DIY building experience sparks children's curiosity in engineering and renewable energy, while nurturing their problem-solving skills
  • ☀️ Powered by the Sun: Enjoy outdoor play with solar power or switch to a strong artificial light source indoors, such as a flashlight, ensuring uninterrupted play for children. This solar build bot toy encourages kids to have fun while exploring renewable energy
  • ⚡ Upgraded Larger Solar Panel: Features a large sun-catching surface to harvest more sunlight and deliver stronger power output. Kids discover renewable energy principles through play - a fun educational toy for ages 8+
  • 🤖 12-in-1 Buildable with Increasing Challenge: With 190 parts, kids can build 12 models like robots, cars, and more. From simple beginners to advanced builds, the varying difficulty levels allow it to grow with your child’s skills. Each robot sparks children’s creativity

The desktop library cannot run in CI

Cause: no physical or virtual display or no supported capture dependency. Fix: configure a virtual display for desktop evidence, or use SeleniumLibrary/browser-document capture when only the page is required.

Make captures reliable in headless CI

  • Pin the browser and driver versions and use the same viewport and device scale factor on every worker.
  • Wait on application state, not an arbitrary “page loaded” event alone.
  • Capture after fonts and images settle; otherwise text reflow changes the result.
  • Log the URL, viewport, document dimensions, browser version, and capture method beside the artifact.
  • Keep a small set of long, lazy-loaded, sticky-header pages as regression fixtures.
  • Compare dimensions and key landmarks in addition to performing a visual review.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup:

ScreenshotNeo provides a website screenshot API and MCP server. One GET request returns PNG, JPEG, WebP, or PDF. It accepts cookie and consent banners as 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 cost nothing, and response headers report the page verdict and whether the shot was billed. Its MCP tools—take_screenshot, get_page_info, and capture_pdf—work with Claude, Cursor, and other MCP clients.

The API includes full-page capture with lazy images loaded, CSS-selector element capture, dark mode, device presets or custom viewports, retina scale, PDF paper and page-range controls, custom CSS and JavaScript, clicks before capture, selector/delay/network-idle waits, request and resource blocking, headers, cookies, user-agent and Authorization settings, timezone and geolocation, transparent backgrounds, resizing, selectable cache TTLs, signed image links, asynchronous jobs with signed webhooks, bulk capture of up to 100 URLs per call, a usage API, and an OpenAPI specification. Common screenshot-API parameter names are accepted to ease migration.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

See the ScreenshotNeo documentation for options and response headers. Equivalent requests:

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)
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 shots per month with no card. Paid plans start at $5 for 3,000 shots; yearly billing provides two months free, and every feature is on every plan. Create a free ScreenshotNeo account.

FAQ

Does a full-page screenshot include content below an iframe?

Not necessarily. Cross-origin or separately rendered content may be controlled by the embedded frame’s browser context. Treat iframe coverage as a separate compatibility case and verify it with the exact driver or API you deploy.

Best Value
Sale
Thames & Kosmos Mega Cyborg Hand STEM Experiment Kit | Build Your Own GIANT Hydraulic Amazing Gripping Capabilities Adjustable for Different Sizes Learn Pneumatic Systems
  • Build your own awesome, wearable mechanical hand that you operate with your own fingers.
  • No motors, no batteries — just the power of air pressure, water, and your own hands!
  • Hydraulic pistons enable the mechanical fingers to open and close and grip objects with enough force to lift them. Every finger joint can be adjusted to different angles for precision movement.
  • Three configurations: right hand, left hand, and claw-like; adjustable to fit virtually any human hand.
  • Learn how pneumatic and hydraulic systems are used in industrial robots such as automobile components..2021 The Toy Association's STEAM Toy Of The Year Winner

Should I prefer PNG, JPEG, or WebP for Robot artifacts?

Choose according to your evidence pipeline: lossless PNG preserves text edges, while JPEG or WebP can reduce file size. The Robot keyword’s output is generally determined by the filename and driver support; validate the format produced in your environment.

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

How can I prove that the capture was really full page?

Record the measured document width and height, the final image dimensions, browser and driver versions, and the capture method. Check landmarks near the top, middle, and bottom rather than relying only on a thumbnail.

Frequently Asked Questions

Does a full-page screenshot include content below an iframe?

Not necessarily. Cross-origin or separately rendered content may be controlled by the embedded frame’s browser context. Treat iframe coverage as a separate compatibility case and verify it with the exact driver or API you deploy.

Should I prefer PNG, JPEG, or WebP for Robot artifacts?

Choose according to your evidence pipeline: lossless PNG preserves text edges, while JPEG or WebP can reduce file size. Validate the format produced by your browser and driver.

How can I prove that the capture was really full page?

Record document and image dimensions, browser and driver versions, and the capture method; then inspect landmarks near the top, middle, and bottom.

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.

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.