Skip to main content

Tracing

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

note

You probably want to enable tracing in your config file instead of using context.tracing.

The context.tracing API captures browser operations and network activity, but it doesn't record test assertions (like expect calls). We recommend enabling tracing through Playwright Test configuration, which includes those assertions and provides a more complete trace for debugging test failures.

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)

group

Added in: v1.49 tracing.group
caution

Use test.step instead when available.

Creates a new group within the trace, assigning any subsequent API calls to this group, until Tracing.groupEnd() is called. Groups can be nested and will be visible in the trace viewer.

使用方式

// All actions between group and groupEnd
// will be shown in the trace viewer as a group.
page.context().tracing().group("Open Playwright.dev > API");
page.navigate("https://playwright.dev/");
page.getByRole(AriaRole.LINK, new Page.GetByRoleOptions().setName("API")).click();
page.context().tracing().groupEnd();

參數

  • name String#

    Group name shown in the trace viewer.

  • options Tracing.GroupOptions (optional)

    • setLocation Location (optional)#

      • setFile String

      • setLine int (optional)

      • setColumn int (optional)

      Specifies a custom location for the group to be shown in the trace viewer. Defaults to the location of the Tracing.group() call.

傳回值


groupEnd

Added in: v1.49 tracing.groupEnd

Closes the last group created by Tracing.group().

使用方式

Tracing.groupEnd();

傳回值


start

Added in: v1.12 tracing.start

Start tracing.

note

You probably want to enable tracing in your config file instead of using Tracing.start.

The context.tracing API captures browser operations and network activity, but it doesn't record test assertions (like expect calls). We recommend enabling tracing through Playwright Test configuration, which includes those assertions and provides a more complete trace for debugging test failures.

使用方式

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

參數

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

      If specified, intermediate trace files are going to be saved into the files with the given name prefix inside the setTracesDir directory specified in BrowserType.launch(). To specify the final trace zip file name, you need to pass path option to Tracing.stop() instead.

    • 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().

使用方式

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

參數

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

      If specified, intermediate trace files are going to be saved into the files with the given name prefix inside the setTracesDir directory specified in BrowserType.launch(). To specify the final trace zip file name, you need to pass path option to Tracing.stopChunk() instead.

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

使用方式

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

參數

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

使用方式

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

參數

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

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

傳回值