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.

using var playwright = await Playwright.CreateAsync();
var browser = await playwright.Chromium.LaunchAsync();
await using var context = await browser.NewContextAsync();
await context.Tracing.StartAsync(new()
{
Screenshots = true,
Snapshots = true
});
var page = await context.NewPageAsync();
await page.GotoAsync("https://playwright.dev");
await context.Tracing.StopAsync(new()
{
Path = "trace.zip"
});

Methods

StartAsync

Added in: v1.12 tracing.StartAsync

Start tracing.

Usage

using var playwright = await Playwright.CreateAsync();
var browser = await playwright.Chromium.LaunchAsync();
await using var context = await browser.NewContextAsync();
await context.Tracing.StartAsync(new()
{
Screenshots = true,
Snapshots = true
});
var page = await context.NewPageAsync();
await page.GotoAsync("https://playwright.dev");
await context.Tracing.StopAsync(new()
{
Path = "trace.zip"
});

Arguments

  • options TracingStartOptions? (optional)
    • Name string? (optional)#

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

    • Screenshots bool? (optional)#

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

    • Snapshots bool? (optional)#

      If this option is true tracing will

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

      Whether to include source files for trace actions.

    • Title string? (optional) Added in: v1.17#

      Trace name to be shown in the Trace Viewer.

Returns


StartChunkAsync

Added in: v1.15 tracing.StartChunkAsync

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

Usage

using var playwright = await Playwright.CreateAsync();
var browser = await playwright.Chromium.LaunchAsync();
await using var context = await browser.NewContextAsync();
await context.Tracing.StartAsync(new()
{
Screenshots = true,
Snapshots = true
});
var page = await context.NewPageAsync();
await page.GotoAsync("https://playwright.dev");

await context.Tracing.StartChunkAsync();
await page.GetByText("Get Started").ClickAsync();
// Everything between StartChunkAsync and StopChunkAsync will be recorded in the trace.
await context.Tracing.StopChunkAsync(new()
{
Path = "trace1.zip"
});

await context.Tracing.StartChunkAsync();
await page.GotoAsync("http://example.com");
// Save a second trace file with different actions.
await context.Tracing.StopChunkAsync(new()
{
Path = "trace2.zip"
});

Arguments

  • options TracingStartChunkOptions? (optional)
    • Name 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 tracesDir folder specified in BrowserType.LaunchAsync(). To specify the final trace zip file name, you need to pass path option to Tracing.StopChunkAsync() instead.

    • Title string? (optional) Added in: v1.17#

      Trace name to be shown in the Trace Viewer.

Returns


StopAsync

Added in: v1.12 tracing.StopAsync

Stop tracing.

Usage

await Tracing.StopAsync(options);

Arguments

  • options TracingStopOptions? (optional)
    • Path string? (optional)#

      Export trace into the file with the given path.

Returns


StopChunkAsync

Added in: v1.15 tracing.StopChunkAsync

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

Usage

await Tracing.StopChunkAsync(options);

Arguments

  • options TracingStopChunkOptions? (optional)

Returns