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

Record-and-playback testing turns a user journey into steps that can be run again. In browser UI testing, you start a recorder at the page where a scenario begins, interact with the site, and review the generated test code. The recording is a starting point—not proof the feature works: add checks for the expected result, then run and maintain the test.

What record-and-playback testing means

In browser test authoring, a recorder observes actions such as clicking a button or filling in a field and generates code that repeats them. A developer can edit that code, add assertions, and run the scenario as an automated test.

The word “replay” has a second, related meaning in debugging. A runtime recorder may capture inputs and execution details so an engineer can inspect or reconstruct a session after a bug. That is different from generating a UI test script: an ordinary browser recorder does not necessarily capture a complete, deterministic trace of the application.

How browser record-and-playback works

  1. Start at the right state. Open the page or application state where the scenario should begin. With Playwright Codegen, pass a URL to the generator; it opens a browser and the Playwright Inspector.
  2. Perform the user journey. Interact with the page as a user would. Codegen creates steps for actions such as clicking and filling fields, and recommends locators based on the rendered page. Its locator suggestions prioritize roles, text, and test IDs.
  3. Record the expected outcome. Add assertions for something meaningful, such as whether a confirmation message is visible, expected text appears, or a field has the expected value. Replaying clicks alone shows only that the steps ran; it does not establish that the application reached the correct result.
  4. Review the generated code. Inspect the locators, actions, and assertions before copying the code into the project. Remove steps that are not needed and verify that the checks correspond to behavior a user can observe.
  5. Run and maintain the scenario. Keep the test focused, control its data and session state, and inspect a trace or recording when it fails. A failure might indicate a product regression, a brittle locator, incorrect test data, or a timing issue.

Playwright documents the recording and code-copying workflow in its test generation guide. Its best practices emphasize user-visible behavior, isolated tests, and assertions that wait for the relevant UI condition.

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.
#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.

A small Playwright example

Generate a first draft

After installing Playwright in the project, start Codegen with the URL for the page under test:

npx playwright codegen https://example.com

Use the opened browser to perform the scenario. The Inspector displays generated code as you interact. Copy the useful steps into a test file, then replace the example address and selectors with those for your application.

Turn recorded actions into a test

A generated test should assert a result as well as perform actions. For example, this illustrative test checks that submitting a search displays a result heading:

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.
import { test, expect } from '@playwright/test';

test('search displays results', async ({ page }) => {
  await page.goto('https://example.com');
  await page.getByRole('searchbox').fill('release notes');
  await page.getByRole('button', { name: 'Search' }).click();
  await expect(page.getByRole('heading', { name: 'Search results' })).toBeVisible();
});

The page address, accessible names, and expected heading above are illustrative; they must match the application being tested. Run the test with the project’s Playwright test command, commonly npx playwright test. A locator generated from a role or visible text often expresses user-facing intent more clearly than a selector tied to internal markup, but it still needs review. Use a test ID where it is the deliberate, stable contract for an element.

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

What makes a recorded test useful and reliable

  • Assert outcomes, not just activity. Prefer checks for a visible state, text, or value that matters to the user. Web-first assertions are designed to wait for UI conditions rather than checking too early.
  • Keep scenarios short and focused. A test with one purpose is easier to diagnose than a long journey with many unrelated steps.
  • Isolate data and sessions. Tests should not depend on another test having run first or on shared mutable state. Set up the required data and session for each scenario.
  • Control dependencies where practical. Third-party pages and services can change or behave unpredictably. Avoid relying on uncontrolled external dependencies for a test’s core result.
  • Use replay evidence to diagnose, not guess. When a run fails, inspect its trace, snapshots, logs, or recording if available. Determine whether the application changed, the locator no longer identifies the intended control, the data is wrong, or the test raced an asynchronous update.

These practices improve maintainability, but they do not make every replay deterministic. Behavior can vary with the tool, browser, environment, application, and scenario.

When browser record-and-playback is the wrong level of test

Browser tests exercise behavior through a real user-facing flow, but they require browser infrastructure and are comparatively expensive to run. Selenium’s test automation overview frames the basic loop as setting up data, performing discrete actions, and evaluating results; it also cautions that functional end-user tests such as Selenium tests are expensive. If a behavior can be established with a unit test or a lower-level test, that may be a simpler and faster place to cover it. Reserve browser tests for the flows where seeing the integrated user experience matters.

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.

How runtime replay helps debug a failure

A debugging recorder may preserve inputs beyond clicks, such as network responses, user events, timers, and random values, then use those inputs during replay. Replay describes this approach in its debugging overview. Its engineer Brian Hackett explained the mechanism in a September 14, 2021 technical article: “If we record those inputs as well as any internal non-determinism which can affect its behavior, then we can run the browser again using that data and it will behave in the exact same way as it did when recording.” This is Replay’s account of its mechanism, not a guarantee about all record-and-playback tools. The value is that an engineer can inspect a preserved session—such as requests, console output, variables, DOM state, or framework renders—after the original failure, including when it is difficult to reproduce live.

What reliability studies do—and do not—show

A 2025 study of Android record-and-replay tools examined 34 scenarios from 17 apps, 90 non-crashing failures from 42 apps, and 31 crashing bugs from 17 apps. The authors reported that 17% of scenarios, 38% of non-crashing bugs, and 44% of crashing bugs could not be reliably recorded and replayed, attributing failures mainly to action-interval resolution, API incompatibility, and Android tooling limitations. These figures describe the sampled Android tools and cases in that study; they are not a failure rate for browser UI testing generally. See the study, Can You Mimic Me? Exploring the Use of Android Record & Replay Tools in Debugging.

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

Troubleshooting a recorded browser test

The generated locator does not find the control

Check that the page is in the expected state and that the locator describes the intended control. Prefer a role and accessible name, visible text, or a deliberately assigned test ID when appropriate. If the UI changed, update the test to match the intended behavior rather than blindly replacing the locator with a fragile CSS path.

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 test clicks or types but the assertion fails

Confirm the assertion checks the correct user-visible outcome and that the test data produces that outcome. If the interface updates asynchronously, use an assertion that waits for the expected condition instead of an immediate read or fixed delay.

The test passes alone but fails in a suite

Look for shared state: reused accounts or records, cookies, storage, or assumptions that another test prepared data. Make each test establish its own prerequisites and avoid order-dependent cleanup.

The failure is intermittent

Inspect the run’s trace or recording and identify the exact step where behavior diverges. Check for timing assumptions, unstable external dependencies, or a locator that can match more than one element. Do not treat repeated reruns as a fix unless the underlying cause is understood.

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.

The recording is difficult to replay on another machine

Check that the same browser setup, application state, credentials, and test data are available. Browser automation tests can depend on infrastructure and environment; capture necessary setup in the project rather than relying on undocumented manual state.

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 the immediate need is a webpage screenshot rather than an automated interaction test, ScreenshotNeo provides a one-request screenshot API. It is not a replacement for Playwright assertions or replaying a user journey. For a screenshot, this cURL request saves a WebP image; see the ScreenshotNeo API documentation for 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
  • It accepts cookie or consent banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each of those steps can be turned off.
  • Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed. Responses identify the page verdict and billing status in headers.
  • An MCP server provides take_screenshot, get_page_info, and capture_pdf tools for AI agents, including Claude, Cursor, and other MCP clients.
  • The Free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 screenshots.

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

Frequently Asked Questions

Does record-and-playback testing eliminate the need to write test code?

No. A recorder can generate an initial sequence, but the test still needs review, meaningful assertions, and maintenance as the application changes.

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

Does a replay always reproduce a failure exactly?

No. Reproducibility depends on what the tool records and on the app and execution environment; browser action scripts and runtime debugging recordings preserve different amounts of context.

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.