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.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

Short answer: Selenium WebDriver does not provide one universal “save this session as MP4” command. WebDriver controls the browser; video is supplied by the environment running it—most commonly Docker Selenium/Grid, a browser-protocol integration, a test-library extension, or a managed testing service. For a self-hosted Grid, enable Docker Selenium’s se:recordVideo capability, mount the container’s assets directory, and collect the resulting video from your CI artifacts.

What actually records a Selenium session?

WebDriver is the control layer. It sends commands to a local browser driver or a remote Selenium Server, while Grid distributes sessions across machines. Neither the core WebDriver documentation nor the basic Grid API defines a portable video-file command. The recorder must therefore run beside the browser or be provided by a service.

  • Docker Selenium/Grid: a documented session recorder controlled with capabilities.
  • Browser protocol capture: WebDriver BiDi or Chrome DevTools-based integrations can stream browser frames, but support varies.
  • Test-library extensions: WebdriverIO and Selenium-Jupiter add their own recording workflows.
  • Managed testing: services such as AWS Device Farm collect videos and Selenium logs for hosted runs.

Choose based on where the browser runs, browser and headless support, session-boundary accuracy, artifact handling, retention, CPU and storage overhead, security, data residency, and operating cost.

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

Recommended self-hosted method: Docker Selenium/Grid

Docker Selenium’s documented switch is a se:recordVideo capability set to true. You can also set the display resolution and time zone. The capability must be present when the RemoteWebDriver session is created.

#1 Best Overall
Rollei M4 Selfie Monitor Screen for iPhone 7-18, Vlog Screen Mirroring
  • 📷【See Yourself in Real Time, Perfectly Framed】Stop guessing your pose. Watch your vlog selfie monitor screen as you film, adjust instantly, and always stay in frame—perfectfor TikTok videos, IG Lives, vlogs, cooking tutorials, makeup videos, and more.
  • 📱【Stunning 4K 60fps IPS Screen】Film with confidence on a vivid IPS screen that mirrors your back camera in Ultra-HD 4K at 60fps. With 178° wide viewing angles, every detail, expression, and angle looks crisp. For the smoothest 4K preview, use the Blackmagic Camera App.
  • ⏳【Real-Time 0.05s Latency, No More Blind Filming】Say goodbye to guesswork. This magnetic selfie screen shows your back camera with under 0.05s ultra-low latency, so your preview keeps up with every move. Perfect for fast-paced vlogging, dancing, cooking, and live streaming.
  • 👍【Broad & Latest Compatibility】This Rollei M4 phone monitor screen is compatible with most iPhone (including iPhone 18 Pro &iPhone 18 Pro Max & iPhone 17 Series ) and Android devices. Please Note: This device is NOT compatible with iphone Duo & Google Pixel series phones. A free magnetic sheet ensures a firm fit for MagSafe and non-MagSafe cases.
  • 🔊【Built-In Speaker for Instant Audio Check】This iphone monitor has a built-in high-fidelity speaker, so you can replay clips with sound right away—no need to wait until editing. Adjust brightness and switch aspect ratios on-screen to frame confidently in any light, indoors or out.

1. Start a Grid and mount an assets directory

Use the Docker Selenium image and bind a host directory to the container location used for assets by the image version you deploy. The mount is essential: without it, a video inside a disposable container can disappear when the job ends. Keep the mounted directory in your CI workspace so the pipeline can upload it as an artifact.

2. Create capabilities

{
  "browserName": "firefox",
  "platformName": "linux",
  "se:recordVideo": "true",
  "se:timeZone": "US/Pacific",
  "se:screenResolution": "1920x1080"
}

Docker Selenium’s documentation describes the requirement plainly: add a se:recordVideo field set to true. Resolution changes what appears in the recording and affects artifact size; the exact codec, filename, and size depend on the image and recorder version.

3. Create the remote session with the capability

Python example:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options

options = Options()
options.set_capability("se:recordVideo", True)
options.set_capability("se:timeZone", "US/Pacific")
options.set_capability("se:screenResolution", "1920x1080")

driver = webdriver.Remote(
    command_executor="http://localhost:4444",
    options=options,
)
try:
    driver.get("https://example.com")
    # Test actions go here.
finally:
    driver.quit()

Use the equivalent capability mechanism in Java, JavaScript, C#, or your binding. The important detail is that the capability reaches the remote session request; setting an arbitrary Python variable after the session starts cannot enable recording.

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

4. End the session cleanly and collect artifacts

Call quit() (or the equivalent) in a finally block. A normal session close gives the recorder a definite stop event. Configure CI to archive the mounted assets directory after the test, including session information generated by the Grid image. If a test process is killed before the remote session closes, the recorder may need the Grid’s lifecycle handling to finalize the file, so preserve logs and inspect partial artifacts.

Rank #2
Vlog Selfie Monitor Screen iPhone, Back Camera Monitor iPhone, White
  • 【Vlog Selfie Monitor Screen for iPhone & Android】Use your phone’s rear camera for selfies, vlogs, tutorials, TikTok, YouTube, and live streaming while viewing yourself on the wireless monitor screen. Compatible with most iPhone and Android phones that support screen mirroring. 【Not compatible with iPhone 17 series or Google Pixel devices】
  • 【Wireless Back Camera Monitor, No App Needed for Preview】Connect through your phone’s built-in Screen Mirroring or Cast function. No extra app or cable is required for regular preview. The monitor mirrors your phone display, helping you use the rear camera for clearer selfie videos, product demos, makeup videos, fitness clips, and live streams
  • 【Important iPhone 4K Recording Note】For smoother iPhone wireless mirroring, 1080p recording is recommended when using the native iPhone camera app. If you need 4K video recording while mirroring, use a third-party camera app such as Blackmagic Camera. 4K lag during native iPhone mirroring is related to iOS/native camera limitations, not a defect of the monitor
  • 【Visual Preview Screen Only, No Built-In Speaker】This selfie monitor screen is designed for visual framing and rear camera preview only. It does not have a built-in speaker and cannot play audio while recording. Audio recording and playback depend on your phone, camera app, microphone, or other connected audio devices
  • 【Bluetooth Remote, Magnetic Mount & Portable Design】The included Bluetooth remote lets you take photos or start/stop video from up to 33 ft away in supported camera apps. The magnetic mount attaches directly to bare iPhone 12–16 models. For iPhone 11 and earlier or Android phones, use the included metal ring. Thick cases may reduce magnetic hold

Keep videos only for failed tests

In the Selenium Grid 4.41.0 Docker Selenium video service, event-driven recording is the default behavior. Recording starts when a session-created event arrives and stops when session-closed fires; the uploader then runs. With failure-only retention enabled, the service can upload only failed or abnormally closed sessions. This is preferable to deleting files after the fact because successful runs need not consume upload bandwidth or long-term storage.

Failure-only behavior still requires a reliable definition of failure in your Grid and CI setup. Confirm how your deployed image marks abnormal closure, where uploads are configured, and what happens when the node loses power. Retain test logs and session IDs with the video so a file can be matched to the failing case.

Browser-level capture: WebDriver BiDi

WebDriver BiDi is a W3C bidirectional protocol that adds a WebSocket connection for streaming browser events and is positioned as the cross-browser replacement for CDP. Its working draft defines a screencast operation that creates a live video track of the browser viewport. An implementation may return an “unsupported operation” error, however. Treat BiDi screencasting as standards-track, implementation-dependent functionality: verify the browser, driver, Selenium binding, and deployed versions before making it your default recorder.

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

BiDi is attractive when you need a browser-level stream rather than a Docker-specific artifact, but it does not remove operational questions about encoding, storage, stopping on crashes, and converting a live track into the format your CI or review tools accept.

Rank #3
Vlog Selfie Monitor Screen iPhone, Screen Mirroring with Remote Control
  • Real-time Rear Camera Monitor: Use the LUCKSKY selfie monitor screen iphone to instantly sync your phone’s rear camera view via the screen mirroring function (up to 4K at 60FPS). Say goodbye to blurry front camera shots and awkward rear camera angles — making content creation easier and more professional. Capture perfect selfies, vlogs, live broadcasts, and content for platforms like TikTok, Instagram, and YouTube anytime, anywhere.
  • Easy Connection & Remote Shooting: Our LUCKSKY back camera monitor iphone connects to the phone through screen mirroring, allowing you to synchronize the rear camera's image in real time with smooth, delay-free video playback (within 33 feet). Equipped with a remote control button to connect via Bluetooth, you can remotely control shooting or recording without awkwardly reaching out or rushing to take selfies.
  • 180° Rotation & 3-Level Brightness: Using screen rotation button, you can easily rotate the display 180°, eliminating the hassle of upside-down images and helping you capture perfect selfies. At the same time, the LUCKSKY vlog selfie monitor screen iphone features three adjustable brightness levels—high, medium, and low—to suit various lighting conditions. You can freely adjust the brightness according to ambient light, ensuring every frame is clear and well-lit.
  • Wide Compatibility: Our back camera monitor iphone features built-in magnetic suction, allowing it to be directly attached to iPhone 12/13/14/15/16/17/18 and similar models. It also includes a magnetic sticker, which can be attached to a wide range of smartphones, such as iPhone 8/9/10/11/12, Samsung Galaxy, and more. The ultra-strong magnetic hold ensures stability and reliability during shooting, preventing accidental slips or drops. (Note: The screen mirroring function is only compatible with iOS 9.0 and above, and Android 2.0 and above.)
  • Packing list: 1 × selfie monitor screen, 1 × Bluetooth Remote Control, 1 × Magnetic Sticker, 1 × Type-C Data Cable, 1 × User Manual. If you have any questions about this vlog back camera monitor iphone, feel free to contact us. We’ll provide the best solution, and our customer service team will respond within 24 hours.

Integration-specific alternatives

WebdriverIO and DevTools

WebdriverIO’s Selenium DevTools documentation describes automatic session screencast support. Chrome can stream frames over CDP. Other browsers may fall back to one screenshot per command, which is not equivalent to continuous video. Its Python path requires ffmpeg on PATH for WebM encoding. Name the library and version in your build documentation; this is not a core WebDriver feature.

Selenium-Jupiter

Selenium-Jupiter documents a pattern in which recording is stopped and a WebM file is downloaded to the browser’s downloads folder. That can fit Java test suites already using the library, but the output location and lifecycle are library-specific. Do not assume its controls or filename conventions apply to a plain Selenium binding.

Managed browser testing

AWS Device Farm’s desktop browser-testing guide says it generates video recordings and Selenium logs for every browser on which a test runs. A managed service removes recorder infrastructure and artifact plumbing from your team. Compare browser and platform coverage, network access, data residency, retention controls, debugging detail, and current service limits with a self-hosted Grid before migrating.

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

Recording locally without Grid

For a browser started directly on a developer workstation, Selenium itself still does not create a movie. You need an operating-system or desktop recorder, a browser-protocol integration, or a test framework extension. Desktop capture records everything visible—including unrelated windows and secrets—so isolate the test display, use a dedicated account, and avoid recording credentials. It is also harder to produce deterministic artifacts in headless CI than a recorder integrated with the browser container.

Rank #4
Gcasio 2.7K Video Camera Camcorder QHD 56MP YouTube Vlogging Camera
  • 【QHD 2.7K Video Camera】 This camcorder supports 2.7K video recording, up to 50MP photo resolution, and 16X digital zoom. The built-in LED fill light enhances your shoots in low-light and nighttime conditions. Suitable for various scenarios like sports events, family gatherings, football games, travel, weddings, YouTube videos, live streaming, and hiking, it lets you capture every exciting moment.
  • 【Webcam Functionality】When connected to a computer, this video camera can function as a webcam. Perfect for live streaming, video calls with family and friends, or recording meetings and classes, it ensures a clear and high-quality connection. Capture stunning photos or videos and share them on YouTube with this vlogging camera.
  • 【Long-duration & Recording While Charging】The QHD vlogging camera includes two high-capacity 1500mAh NP-40 lithium batteries, each providing over 140 minutes of continuous recording. It also supports recording while charging, ensuring you won't miss any important moments due to low battery, making it perfect for events like concerts, sports games, and vlogging.
  • 【Multifunctional Camcorder】This versatile video camera features an LCD screen with 270° rotation, anti-shake, face detection, self-timer, continuous shooting, image stabilization, multiple scene modes, webcam functionality, USB 2.0, and more. Lightweight and portable, the camcorder is perfect for capturing beautiful moments anytime, anywhere, making it an excellent gift for family and friends.
  • 【Supports Large Storage & Microphone】With the included 16GB memory card, you can start shooting right away without any additional purchases. The 2.7K camcorder supports up to 128GB of expandable storage and an external microphone (not included) for capturing clearer audio. It also supports tripod (not included) connections with a standard-sized mounting hole, catering to your diverse needs.

Format, resolution, and retention decisions

  • Format: use the format your CI viewer accepts. Docker Selenium’s exact encoding is image/version-dependent; WebdriverIO’s WebM path depends on ffmpeg.
  • Resolution: set se:screenResolution deliberately. Higher resolution improves visual diagnosis but increases processing and storage work.
  • Full page versus viewport: a session video shows the viewport over time, not a single full-page screenshot. Capture a separate page artifact when you need content below the fold.
  • Retention: keep all videos briefly while validating the setup, then enable failure-only upload or retention. Define a maximum artifact age and storage quota.
  • Security: videos can contain personal data, tokens displayed in the UI, and internal URLs. Restrict artifact permissions and encrypt storage according to your organization’s policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Common failures and fixes

No video is produced

Check that se:recordVideo is inside the capabilities sent at session creation, that the selected Docker Selenium image includes the video service, and that the host directory is mounted at the image’s documented assets path. Inspect Grid and node logs for rejected or unrecognized capabilities.

The file disappears after CI

Archive the mounted assets directory as a CI artifact. A file written only inside a container is lost when the container is removed. Ensure the test waits for quit() before artifact collection.

The recording is blank or stops early

Verify the display configuration and browser mode. A crash, forced process termination, node restart, or unsupported browser can prevent a normal stop. Preserve the session log and compare the recording’s timestamps with Grid events.

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

Only screenshots appear

If using WebdriverIO, you may be on a non-Chrome browser where the documented fallback is one screenshot per command. Use a supported continuous-stream path or Docker Selenium recording instead.

Best Value
Sale
Duluvulu 4K Digital Camera for Photography Autofocus, 2026 Latest 48MP Vlogging Camera for YouTube with SD Card, 2 Batteries, 3" 180°Flip Screen Compact Travel Camera for Teens with 16X Zoom,Black
  • 4K DIGITAL CAMERA WITH AUTOFOCUS: The newest 4K digital camera for photography captures videos in 4K resolution and snaps ultra HD 48MP images. With Autofocus and 16X digital zoom, every detail is crisp, clear, and vibrant even captured from a distance.
  • 180° FLIP SCREEN AND PORTABLE: Our 4k camera for photography offers a 3.0-inch IPS 180° flip screen, ideal for selfie enthusiasts and vlogging creation. Designed for travel and everyday use, this compact travel camera for pictures is built to last. Its small size and durable construction make it a reliable companion for capturing memories on the go.
  • MULTIFUNCTIONAL PHOTOGRAPHY CAMERA: The 4K digital video camera features a date stamp, exposure compensation (-3.0 to +3.0), video pause and playback, time-lapse, slow-motion, giving your videos a creative edge. Additional features like a fill light, Anti-shake, 3 continuous shooting, smile & face detection, beauty face, self-timer, and various filters encourage you to stretch your creative boundaries.
  • WEBCAM AND EASY TRANSFER: This 4K vlogging camera for YouTube doubles as a webcam, perfect for live streaming, video chats, and vlogging. You can connect the photo camera to your computer via an USB cable for easy file download, sharing your experiences with friends instantly. With 2 spare rechareable batteries, never worry about power shortage.
  • A PERFECT GIFT WITH A HASSLE-FREE WARRANTY: User-friendly and versatile, this portable digital camera for teens is an ideal gift for beginners, amateurs, teens, and seniors, fulfilling daily shooting needs easily. Enjoy our worry-free 18-month replacement and refund warranty. Our prompt customer support team is ready to assist you in under 12 hours!

WebM encoding fails

For the WebdriverIO Python path, install ffmpeg and make sure it is discoverable on PATH. Confirm the binary is available in the same CI container or worker that performs encoding.

BiDi returns unsupported operation

This is an implementation limitation, not necessarily a test error. Check browser and driver support, Selenium binding versions, and the protocol implementation; fall back to Grid recording when screencasting is unavailable.

Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server, not a replacement for time-based Selenium session video. It is useful when your actual need is a clean, repeatable screenshot of a page or state after the test. Cookie and consent banners are accepted and removed before capture, along with more than 60 known consent platforms, newsletter popups, and chat widgets; each cleanup step can be disabled. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers identify the page verdict and billing status. Its MCP server lets Claude, Cursor, and other MCP clients call take_screenshot, get_page_info, and capture_pdf.

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

One GET request returns PNG, JPEG, or WebP:

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 API documentation for options such as full-page capture, CSS selectors, device presets, custom JavaScript, waits, headers, cookies, geolocation, signed links, asynchronous jobs, bulk capture, and caching.

The Free plan includes 1,000 screenshots per month with no card. Paid plans start at $5 for 3,000 shots; every feature is available on every plan. Create a free ScreenshotNeo account.

Practical decision guide

  • Already running Docker Selenium/Grid and need CI artifacts: use se:recordVideo and a mounted assets directory.
  • Need only failed-run evidence: use the Grid 4.41 event-driven recorder with failure-only retention.
  • Need a protocol-native stream: evaluate BiDi, but verify support in your exact browser stack.
  • Already standardized on WebdriverIO or Selenium-Jupiter: use that library’s documented recorder and version-specific requirements.
  • Want hosted artifact collection: evaluate a managed service such as AWS Device Farm against your data and retention requirements.

Frequently Asked Questions

Does setting a WebDriver screenshot capability create a video?

No. A screenshot command captures an image at one point in time; continuous recording requires Grid/container tooling, a browser protocol integration, a test-library extension, or a managed service.

Can a video prove that a test passed?

It shows the recorded viewport, not every browser or server-side event. Pair it with test logs, session IDs, and application telemetry when diagnosing failures.

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

Should videos be recorded for every parallel session?

Usually only while diagnosing a problem. Recording adds processing and storage work, so failure-only retention is a better steady-state policy when your Grid supports it.

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.