Showing posts with label Playwright Video. Show all posts
Showing posts with label Playwright Video. Show all posts

Video Recording in Playwright
















Complete Guide to Video Recording in Playwright Java – Step-by-Step Tutorial with Example

Video recording in Playwright Java is one of the most powerful features for modern test automation. When you are running automated browser tests, especially in large-scale enterprise applications, simply relying on logs and screenshots is often not enough. That’s where Playwright’s built-in video recording capability becomes extremely valuable.

In this comprehensive guide, you will learn:

  • What video recording in Playwright Java is

  • Why it is important in automation testing

  • How video recording works internally

  • How to configure and enable it

  • Step-by-step Java example

  • Best practices for managing recorded videos

  • CI/CD integration tips

  • Common mistakes to avoid

This article is fully SEO-optimized, beginner-friendly, and written in a natural human tone so you can easily understand and implement video recording in your Playwright automation framework.


What Is Video Recording in Playwright Java?

In Playwright Java, video recording is a feature that allows you to capture the entire browser session during automated test execution. The output is saved as a video file (usually in .webm format), which you can replay later to analyze the test flow.

Instead of guessing what went wrong from logs, you can visually watch the execution exactly as it happened.

This feature is enabled at the BrowserContext level, meaning every page created inside that context will automatically have its own recorded video.


Why Video Recording Is Important in Test Automation

Modern web applications are dynamic. They use:

  • AJAX requests

  • Lazy loading

  • Dynamic UI updates

  • Animations

  • Conditional rendering

When a test fails, it may not always be obvious why.

1. Better Debugging

When a test fails, watching the recorded video helps you:

  • See if an element was visible

  • Check if the page loaded properly

  • Identify timing issues

  • Detect UI glitches

  • Understand unexpected redirects

Instead of spending hours analyzing logs, you can quickly pinpoint the issue.


2. Complete Test Flow Visibility

Unlike screenshots (which capture only one moment), video recording captures:

  • Every click

  • Every navigation

  • Every form fill

  • Every scroll

  • Every interaction

It provides complete transparency of the test journey.


3. Useful for Reporting and Stakeholders

You can attach recorded videos to:

  • Test reports

  • CI/CD pipeline reports

  • Bug tracking systems

  • Email reports

Developers and stakeholders can watch the execution without running the test themselves.


4. Regression Testing Validation

In regression testing, you want to ensure that new changes do not break existing flows.

Video recording allows you to:

  • Visually compare test runs

  • Confirm UI behavior remains consistent

  • Validate animation or layout changes


How Video Recording Works in Playwright Java

Let’s understand the internal working mechanism.

1. BrowserContext-Level Configuration

Video recording is enabled while creating a BrowserContext.

When you configure:

setRecordVideoDir(Paths.get("videos/"))

Playwright begins capturing all actions performed inside pages created from that context.


2. Automatic Video Creation per Page

Each page inside the context:

Page page = context.newPage();

Will automatically generate its own video file.


3. Video Storage

By default:

  • Videos are stored in the directory you specify.

  • Files are saved in .webm format.

  • Video is finalized only after the page or context is closed.

Important: If you forget to close the page or context, the video may not be saved properly.


Video Format Used in Playwright

Playwright saves videos in:

.webm format

Why .webm?

  • Lightweight

  • High compression

  • Browser compatible

  • Easy to attach in reports

Most modern browsers and media players support .webm.


Step-by-Step Guide: Record Video in Playwright Java

Let’s automate:

https://example.com

We will:

  1. Launch browser

  2. Enable video recording

  3. Perform actions

  4. Close context

  5. Verify video saved


Java Code Example – Record Video in Playwright

import com.microsoft.playwright.*; import java.nio.file.Paths; public class VideoRecordingExample { public static void main(String[] args) { try (Playwright playwright = Playwright.create()) { // (a) Launch browser Browser browser = playwright.chromium() .launch(new BrowserType.LaunchOptions().setHeadless(false)); // (b) Set video recording options Browser.NewContextOptions contextOptions = new Browser.NewContextOptions() .setRecordVideoDir(Paths.get("videos/")) // Directory to save videos .setRecordVideoSize(1280, 720); // Optional resolution // (c) Create browser context with video enabled BrowserContext context = browser.newContext(contextOptions); // (d) Create new page Page page = context.newPage(); // (e) Navigate to website page.navigate("https://example.com"); // (f) Perform some action page.click("text=More information"); // Wait for demo purpose page.waitForTimeout(3000); // (g) Close page and context (important to finalize video) page.close(); context.close(); System.out.println("Video saved in videos/ directory"); } } }


Code Explanation

(a) Launch Browser

Browser browser = playwright.chromium().launch(...)

Launches Chromium browser instance.


(b) Enable Video Recording

.setRecordVideoDir(Paths.get("videos/"))

Specifies the folder where videos will be saved.

.setRecordVideoSize(1280, 720)

Optional resolution setting.


(c) Create BrowserContext

Video recording starts only when the context is created with recording options.


(d) Create Page

Each page gets its own video file.


(e) Perform Actions

Any interaction is recorded:

  • Click

  • Fill

  • Scroll

  • Navigation


(f) Close Page & Context

Very Important:

Video is finalized only after closing:

page.close(); context.close();


Project Structure Example

Project ├── src ├── videos │ ├── 3f9b2d.webm │ ├── 6a1c7e.webm └── pom.xml

Each execution generates a unique video file.


Best Practices for Video Recording in Playwright Java

1. Record Only When Necessary

Video recording consumes:

  • Disk space

  • Execution time

  • CI storage

Best practice:

  • Enable video only for failed tests

  • Enable video in debug mode

  • Disable in full regression unless needed


2. Use Separate Directory Per Test Run

Example:

videos/run_01/ videos/run_02/

Prevents overwriting old videos.


3. Clean Up Old Videos

Large automation projects may generate hundreds of videos.

Implement cleanup strategy:

  • Delete older than 7 days

  • Archive important runs


4. Integrate with CI/CD

Video files can be attached to:

  • Jenkins artifacts

  • GitHub Actions artifacts

  • Azure DevOps pipelines

  • GitLab CI

This helps teams review failures without local execution.


Video Recording vs Screenshots vs Trace Viewer

Let’s compare:

FeatureScreenshotVideoTrace Viewer
Captures single momentYesNoNo
Captures entire flowNoYesYes
Shows timelineNoLimitedYes
LightweightYesModerateModerate
Best for debuggingMediumHighVery High

Video is ideal when you need visual flow confirmation.


Common Mistakes to Avoid

1. Forgetting to Close Context

If you don’t close the context:

Video may not save properly.


2. Not Creating Video Directory

Make sure:

videos/

Exists and is writable.


3. Enabling Video in Headless Mode Without Testing

Video works in headless mode, but always test configuration once in headed mode.


4. Large File Storage in CI

Videos can accumulate quickly.

Always configure:

  • Artifact cleanup

  • Retention policies


Advanced Customization Tips

Retrieve Video Path Programmatically

You can get the video file path:

Path videoPath = page.video().path(); System.out.println("Video Path: " + videoPath);

Useful for:

  • Attaching video to reports

  • Custom naming logic


Rename Video File

You can move video after test execution:

page.video().saveAs(Paths.get("videos/TestCase01.webm"));

This gives meaningful file names.


When Should You Use Video Recording?

Use video recording when:

  • Debugging flaky tests

  • Validating UI transitions

  • Creating demo automation videos

  • Demonstrating automation capability

  • Investigating CI failures

Avoid always-on recording in large-scale test suites unless necessary.


SEO Summary: Video Recording in Playwright Java

If you are working with Playwright automation using Java, enabling video recording can significantly improve debugging efficiency, reporting clarity, and regression confidence. By configuring video recording at the BrowserContext level, you ensure that every browser interaction is captured visually.

Key takeaways:

  • Video recording is enabled via setRecordVideoDir()

  • Videos are saved in .webm format

  • Each page generates a separate video

  • Video is finalized only after closing page/context

  • Ideal for debugging and CI reporting

  • Should be used strategically to avoid storage overload


Final Thoughts

Video recording in Playwright Java is not just a luxury feature — it is a practical debugging and reporting tool that enhances test automation reliability.

Instead of relying only on console logs or screenshots, a full video gives you a real-time replay of your automated browser session. This makes troubleshooting faster, collaboration easier, and automation frameworks more robust.

If you are building a scalable automation framework using Playwright with Java, integrating video recording properly can elevate your testing strategy to a professional level.


Suggested Posts:

1. Count Multiple Elements in Dropdown in Playwright
2. File Upload in Playwright
3. Comma Selectors in Playwright
4. Trace Viewer in Playwright
5. Page Object Model in Playwright