Skip to main content

Tracing

API for collecting and saving Playwright traces. Playwright traces can be opened in Trace Viewer after Playwright script runs.

Start recording a trace before performing actions. At the end, stop tracing and save it to a file.

Browser browser = chromium.launch();
BrowserContext context = browser.newContext();
context.tracing().start(new Tracing.StartOptions()
.setScreenshots(true)
.setSnapshots(true));
Page page = context.newPage();
page.navigate("https://playwright.dev");
context.tracing().stop(new Tracing.StopOptions()
.setPath(Paths.get("trace.zip")));

Methods

start

Added in: v1.12 tracing.start

Start tracing.

Usage

context.tracing().start(new Tracing.StartOptions()
.setScreenshots(true)
.setSnapshots(true));
Page page = context.newPage();
page.navigate("https://playwright.dev");
context.tracing().stop(new Tracing.StopOptions()
.setPath(Paths.get("trace.zip")));

Arguments

  • options Tracing.StartOptions (optional)
    • setName String (optional)#

      If specified, the trace is going to be saved into the file with the given name inside the tracesDir folder specified in BrowserType.launch().

    • setScreenshots boolean (optional)#

      Whether to capture screenshots during tracing. Screenshots are used to build a timeline preview.

    • setSnapshots boolean (optional)#

      If this option is true tracing will

      • capture DOM snapshot on every action
      • record network activity
    • setSources boolean (optional) Added in: v1.17#

      Whether to include source files for trace actions. List of the directories with source code for the application must be provided via PLAYWRIGHT_JAVA_SRC environment variable (the paths should be separated by ';' on Windows and by ':' on other platforms).

    • setTitle String (optional) Added in: v1.17#

      Trace name to be shown in the Trace Viewer.


startChunk

Added in: v1.15 tracing.startChunk

Start a new trace chunk. If you'd like to record multiple traces on the same BrowserContext, use Tracing.start() once, and then create multiple trace chunks with Tracing.startChunk() and Tracing.stopChunk().

Usage

context.tracing().start(new Tracing.StartOptions()
.setScreenshots(true)
.setSnapshots(true));
Page page = context.newPage();
page.navigate("https://playwright.dev");

context.tracing().startChunk();
page.getByText("Get Started").click();
// Everything between startChunk and stopChunk will be recorded in the trace.
context.tracing().stopChunk(new Tracing.StopChunkOptions()
.setPath(Paths.get("trace1.zip")));

context.tracing().startChunk();
page.navigate("http://example.com");
// Save a second trace file with different actions.
context.tracing().stopChunk(new Tracing.StopChunkOptions()
.setPath(Paths.get("trace2.zip")));

Arguments

  • options Tracing.StartChunkOptions (optional)
    • setName String (optional) Added in: v1.32#

      If specified, the trace is going to be saved into the file with the given name inside the tracesDir folder specified in BrowserType.launch().

    • setTitle String (optional) Added in: v1.17#

      Trace name to be shown in the Trace Viewer.


stop

Added in: v1.12 tracing.stop

Stop tracing.

Usage

Tracing.stop();
Tracing.stop(options);

Arguments

  • options Tracing.StopOptions (optional)
    • setPath Path (optional)#

      Export trace into the file with the given path.


stopChunk

Added in: v1.15 tracing.stopChunk

Stop the trace chunk. See Tracing.startChunk() for more details about multiple trace chunks.

Usage

Tracing.stopChunk();
Tracing.stopChunk(options);

Arguments

  • options Tracing.StopChunkOptions (optional)
    • setPath Path (optional)#

      Export trace collected since the last Tracing.startChunk() call into the file with the given path.