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.
await using var browser = playwright.Chromium.LaunchAsync();
await using var context = await browser.NewContextAsync();
await context.Tracing.StartAsync(new()
{
Screenshots: true,
Snapshots: true
});
var page = context.NewPageAsync();
await page.GotoAsync("https://playwright.dev");
await context.Tracing.StopAsync(new()
{
Path: "trace.zip"
});
Methods
StartAsync
Added in: v1.12Start tracing.
Usage
await using var browser = playwright.Chromium.LaunchAsync();
await using var context = await browser.NewContextAsync();
await context.Tracing.StartAsync(new()
{
Screenshots: true,
Snapshots: true
});
var page = context.NewPageAsync();
await page.GotoAsync("https://playwright.dev");
await context.Tracing.StopAsync(new()
{
Path: "trace.zip"
});
Arguments
options
TracingStartOptions?
(optional)If specified, the trace is going to be saved into the file with the given name inside the
tracesDir
folder specified in BrowserType.LaunchAsync().Whether to capture screenshots during tracing. Screenshots are used to build a timeline preview.
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.
StartChunkAsync
Added in: v1.15Start 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
await using var browser = playwright.Chromium.LaunchAsync();
await using var context = await browser.NewContextAsync();
await context.Tracing.StartAsync(new()
{
Screenshots: true,
Snapshots: true
});
var page = 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, the trace is going to be saved into the file with the given name inside the
tracesDir
folder specified in BrowserType.LaunchAsync().Title
string? (optional) Added in: v1.17#Trace name to be shown in the Trace Viewer.
StopAsync
Added in: v1.12Stop tracing.
Usage
await Tracing.StopAsync(options);
Arguments
options
TracingStopOptions?
(optional)
StopChunkAsync
Added in: v1.15Stop the trace chunk. See Tracing.StartChunkAsync() for more details about multiple trace chunks.
Usage
await Tracing.StopChunkAsync(options);
Arguments
options
TracingStopChunkOptions?
(optional)Export trace collected since the last Tracing.StartChunkAsync() call into the file with the given path.