Tracing
用于收集和保存 Playwright 痕迹的 API。Playwright 脚本运行后,可以在 跟踪查看器 打开 Playwright 痕迹。
¥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.
- Sync
- Async
browser = chromium.launch()
context = browser.new_context()
context.tracing.start(screenshots=True, snapshots=True)
page = context.new_page()
page.goto("https://playwright.nodejs.cn")
context.tracing.stop(path = "trace.zip")
browser = await chromium.launch()
context = await browser.new_context()
await context.tracing.start(screenshots=True, snapshots=True)
page = await context.new_page()
await page.goto("https://playwright.nodejs.cn")
await context.tracing.stop(path = "trace.zip")
方法
¥Methods
group
Added in: v1.49在可用时改用 test.step
。
¥Use test.step
instead when available.
在跟踪中创建一个新组,将任何后续 API 调用分配给该组,直到调用 tracing.group_end()。组可以嵌套,并将在跟踪查看器中可见。
¥Creates a new group within the trace, assigning any subsequent API calls to this group, until tracing.group_end() is called. Groups can be nested and will be visible in the trace viewer.
用法
¥Usage
- Sync
- Async
# All actions between group and group_end
# will be shown in the trace viewer as a group.
page.context.tracing.group("Open Playwright.dev > API")
page.goto("https://playwright.nodejs.cn/")
page.get_by_role("link", name="API").click()
page.context.tracing.group_end()
# All actions between group and group_end
# will be shown in the trace viewer as a group.
await page.context.tracing.group("Open Playwright.dev > API")
await page.goto("https://playwright.nodejs.cn/")
await page.get_by_role("link", name="API").click()
await page.context.tracing.group_end()
参数
¥Arguments
跟踪查看器中显示的组名称。
¥Group name shown in the trace viewer.
指定要在跟踪查看器中显示的组的自定义位置。默认为 tracing.group() 调用的位置。
¥Specifies a custom location for the group to be shown in the trace viewer. Defaults to the location of the tracing.group() call.
返回
¥Returns
group_end
Added in: v1.49关闭 tracing.group() 创建的最后一个组。
¥Closes the last group created by tracing.group().
用法
¥Usage
tracing.group_end()
返回
¥Returns
start
Added in: v1.12开始追踪。
¥Start tracing.
用法
¥Usage
- Sync
- Async
context.tracing.start(screenshots=True, snapshots=True)
page = context.new_page()
page.goto("https://playwright.nodejs.cn")
context.tracing.stop(path = "trace.zip")
await context.tracing.start(screenshots=True, snapshots=True)
page = await context.new_page()
await page.goto("https://playwright.nodejs.cn")
await context.tracing.stop(path = "trace.zip")
参数
¥Arguments
如果指定,中间跟踪文件将保存到 browser_type.launch() 中指定的 traces_dir 目录中具有给定名称前缀的文件中。要指定最终跟踪 zip 文件名,你需要将 path
选项传递给 tracing.stop()。
¥If specified, intermediate trace files are going to be saved into the files with the given name prefix inside the traces_dir directory specified in browser_type.launch(). To specify the final trace zip file name, you need to pass path
option to tracing.stop() instead.
追踪过程中是否截屏。屏幕截图用于构建时间线预览。
¥Whether to capture screenshots during tracing. Screenshots are used to build a timeline preview.
如果此选项为 true,则跟踪将
¥If this option is true tracing will
-
捕获每个动作的 DOM 快照
¥capture DOM snapshot on every action
-
记录网络活动
¥record network activity
是否包含跟踪操作的源文件。
¥Whether to include source files for trace actions.
要在跟踪查看器中显示的跟踪名称。
¥Trace name to be shown in the Trace Viewer.
返回
¥Returns
start_chunk
Added in: v1.15开始一个新的跟踪块。如果你想在同一个 BrowserContext 上记录多个跟踪,请使用 tracing.start() 一次,然后使用 tracing.start_chunk() 和 tracing.stop_chunk() 创建多个跟踪块。
¥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.start_chunk() and tracing.stop_chunk().
用法
¥Usage
- Sync
- Async
context.tracing.start(screenshots=True, snapshots=True)
page = context.new_page()
page.goto("https://playwright.nodejs.cn")
context.tracing.start_chunk()
page.get_by_text("Get Started").click()
# Everything between start_chunk and stop_chunk will be recorded in the trace.
context.tracing.stop_chunk(path = "trace1.zip")
context.tracing.start_chunk()
page.goto("http://example.com")
# Save a second trace file with different actions.
context.tracing.stop_chunk(path = "trace2.zip")
await context.tracing.start(screenshots=True, snapshots=True)
page = await context.new_page()
await page.goto("https://playwright.nodejs.cn")
await context.tracing.start_chunk()
await page.get_by_text("Get Started").click()
# Everything between start_chunk and stop_chunk will be recorded in the trace.
await context.tracing.stop_chunk(path = "trace1.zip")
await context.tracing.start_chunk()
await page.goto("http://example.com")
# Save a second trace file with different actions.
await context.tracing.stop_chunk(path = "trace2.zip")
参数
¥Arguments
如果指定,中间跟踪文件将保存到 browser_type.launch() 中指定的 traces_dir 目录中具有给定名称前缀的文件中。要指定最终跟踪 zip 文件名,你需要将 path
选项传递给 tracing.stop_chunk()。
¥If specified, intermediate trace files are going to be saved into the files with the given name prefix inside the traces_dir directory specified in browser_type.launch(). To specify the final trace zip file name, you need to pass path
option to tracing.stop_chunk() instead.
要在跟踪查看器中显示的跟踪名称。
¥Trace name to be shown in the Trace Viewer.
返回
¥Returns
stop
Added in: v1.12停止追踪。
¥Stop tracing.
用法
¥Usage
tracing.stop()
tracing.stop(**kwargs)
参数
¥Arguments
path
Union[str, pathlib.Path] (optional)#
将跟踪导出到具有给定路径的文件中。
¥Export trace into the file with the given path.
返回
¥Returns
stop_chunk
Added in: v1.15停止跟踪块。有关多个跟踪块的更多详细信息,请参阅 tracing.start_chunk()。
¥Stop the trace chunk. See tracing.start_chunk() for more details about multiple trace chunks.
用法
¥Usage
tracing.stop_chunk()
tracing.stop_chunk(**kwargs)
参数
¥Arguments
path
Union[str, pathlib.Path] (optional)#
将自上次 tracing.start_chunk() 调用以来收集的跟踪导出到具有给定路径的文件中。
¥Export trace collected since the last tracing.start_chunk() call into the file with the given path.
返回
¥Returns