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")));

Tracing.start([options])

Added in: v1.12
  • options <Tracing.StartOptions>
    • setName <String> If specified, the trace is going to be saved into the file with the given name inside the tracesDir folder specified in BrowserType.launch([options]).#
    • setScreenshots <boolean> Whether to capture screenshots during tracing. Screenshots are used to build a timeline preview.#
    • setSnapshots <boolean> If this option is true tracing will#
      • capture DOM snapshot on every action
      • record network activity
    • setSources <boolean> 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). Added in: v1.17#
    • setTitle <String> Trace name to be shown in the Trace Viewer. Added in: v1.17#
  • returns: <void>#

Start tracing.

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")));

Tracing.startChunk([options])

Added in: v1.15
  • options <Tracing.StartChunkOptions>
    • setTitle <String> Trace name to be shown in the Trace Viewer. Added in: v1.17#
  • returns: <void>#

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

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

context.tracing().startChunk();
page.locator("text=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")));

Tracing.stop([options])

Added in: v1.12
  • options <Tracing.StopOptions>
    • setPath <Path> Export trace into the file with the given path.#
  • returns: <void>#

Stop tracing.

Tracing.stopChunk([options])

Added in: v1.15

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