NOTE 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.
Usage
// use test.step instead
await test.step('Log in', async () => {
// ...
});
Group name shown in the trace viewer.
Optional options: { Optional
Optional location?: { Specifies a custom location for the group to be shown in the trace viewer. Defaults to the location of the tracing.group(name[, options]) call.
Optional column?: numberOptional line?: numberCloses the last group created by tracing.group(name[, options]).
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.
Usage
await context.tracing.start({ screenshots: true, snapshots: true });
const page = await context.newPage();
await page.goto('https://playwright.dev');
expect(page.url()).toBe('https://playwright.dev');
await context.tracing.stop({ path: 'trace.zip' });
Optional options: { Optional
Optional name?: stringIf specified, intermediate trace files are going to be saved into the files with the given name prefix inside the
tracesDir directory
specified in
browserType.launch([options]). To specify
the final trace zip file name, you need to pass path option to
tracing.stop([options]) instead.
Optional screenshots?: booleanWhether to capture screenshots during tracing. Screenshots are used to build a timeline preview.
Optional snapshots?: booleanIf this option is true tracing will
Optional sources?: booleanWhether to include source files for trace actions.
Optional title?: stringTrace name to be shown in the Trace Viewer.
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]).
Usage
await context.tracing.start({ screenshots: true, snapshots: true });
const page = await context.newPage();
await page.goto('https://playwright.dev');
await context.tracing.startChunk();
await page.getByText('Get Started').click();
// Everything between startChunk and stopChunk will be recorded in the trace.
await context.tracing.stopChunk({ path: 'trace1.zip' });
await context.tracing.startChunk();
await page.goto('http://example.com');
// Save a second trace file with different actions.
await context.tracing.stopChunk({ path: 'trace2.zip' });
Optional options: { Optional
Optional name?: stringIf specified, intermediate trace files are going to be saved into the files with the given name prefix inside the
tracesDir directory
specified in
browserType.launch([options]). To specify
the final trace zip file name, you need to pass path option to
tracing.stopChunk([options]) instead.
Optional title?: stringTrace name to be shown in the Trace Viewer.
Stop the trace chunk. See tracing.startChunk([options]) for more details about multiple trace chunks.
Optional options: { Optional
Optional path?: stringExport trace collected since the last tracing.startChunk([options]) call into the file with the given path.
Generated using TypeDoc
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.tracingAPI captures browser operations and network activity, but it doesn't record test assertions (likeexpectcalls). 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.