跳转到主要内容

Tracing

用于收集和保存 Playwright 追踪的 API。Playwright 脚本运行后,追踪可以在追踪查看器中打开。

注意

您可能希望在您的配置文件中启用追踪,而不是使用context.tracing

context.tracing API 捕获浏览器操作和网络活动,但不记录测试断言(如 expect 调用)。我们建议通过 Playwright Test 配置启用追踪,这会包含这些断言,并为调试测试失败提供更完整的追踪。

在执行操作之前开始记录追踪。最后,停止追踪并将其保存到文件中。

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.net.cn");
await context.Tracing.StopAsync(new()
{
Path = "trace.zip"
});

方法

GroupAsync

新增于: v1.49 tracing.GroupAsync
注意

如果可用,请改用test.step

在追踪中创建一个新组,并将所有后续 API 调用分配给此组,直到调用Tracing.GroupEndAsync()。组可以嵌套,并将在追踪查看器中可见。

用法

// All actions between GroupAsync and GroupEndAsync
// will be shown in the trace viewer as a group.
await Page.Context.Tracing.GroupAsync("Open Playwright.dev > API");
await Page.GotoAsync("https://playwright.net.cn/");
await Page.GetByRole(AriaRole.Link, new() { Name = "API" }).ClickAsync();
await Page.Context.Tracing.GroupEndAsync();

参数

  • name string#

    在追踪查看器中显示的组名。

  • options TracingGroupOptions? (可选)

    • Location Location? (可选)#

      • File string

      • Line int? (可选)

      • Column int? (可选)

      指定组在追踪查看器中显示的自定义位置。默认为 Tracing.GroupAsync() 调用的位置。

返回


GroupEndAsync

新增于: v1.49 tracing.GroupEndAsync

关闭由Tracing.GroupAsync()创建的最后一个组。

用法

await Tracing.GroupEndAsync();

返回


StartAsync

添加于:v1.12 tracing.StartAsync

开始追踪。

注意

您可能希望在您的配置文件中启用追踪,而不是使用Tracing.start

context.tracing API 捕获浏览器操作和网络活动,但不记录测试断言(如 expect 调用)。我们建议通过 Playwright Test 配置启用追踪,这会包含这些断言,并为调试测试失败提供更完整的追踪。

用法

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.net.cn");
await context.Tracing.StopAsync(new()
{
Path = "trace.zip"
});

参数

  • options TracingStartOptions? (可选)
    • Name string? (可选)#

      如果指定,中间追踪文件将以给定名称前缀保存到TracesDir目录中,该目录在BrowserType.LaunchAsync()中指定。要指定最终追踪 zip 文件名,您需要将path选项传递给Tracing.StopAsync()

    • Screenshots bool? (可选)#

      是否在追踪期间捕获屏幕截图。屏幕截图用于构建时间线预览。

    • Snapshots bool? (可选)#

      如果此选项为 true,追踪将

      • 在每次操作时捕获 DOM 快照
      • 记录网络活动
    • Sources bool? (可选)新增于: v1.17#

      是否包含追踪操作的源文件。

    • Title string? (可选)新增于: v1.17#

      在追踪查看器中显示的追踪名称。

返回


StartChunkAsync

新增于: v1.15 tracing.StartChunkAsync

开始一个新的追踪块。如果您想在同一个BrowserContext上记录多个追踪,请先使用Tracing.StartAsync()一次,然后使用Tracing.StartChunkAsync()Tracing.StopChunkAsync()创建多个追踪块。

用法

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.net.cn");

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

参数

  • options TracingStartChunkOptions? (可选)
    • Name string? (可选)新增于: v1.32#

      如果指定,中间追踪文件将以给定名称前缀保存到TracesDir目录中,该目录在BrowserType.LaunchAsync()中指定。要指定最终追踪 zip 文件名,您需要将path选项传递给Tracing.StopChunkAsync()

    • Title string? (可选)新增于: v1.17#

      在追踪查看器中显示的追踪名称。

返回


StopAsync

添加于:v1.12 tracing.StopAsync

停止追踪。

用法

await Tracing.StopAsync(options);

参数

  • options TracingStopOptions? (可选)
    • Path string? (可选)#

      将追踪导出到给定路径的文件中。

返回


StopChunkAsync

新增于: v1.15 tracing.StopChunkAsync

停止追踪块。有关多个追踪块的更多详细信息,请参阅Tracing.StartChunkAsync()

用法

await Tracing.StopChunkAsync(options);

参数

  • options TracingStopChunkOptions? (可选)

返回