Class: Playwright::Tracing

Inherits:
PlaywrightApi show all
Defined in:
lib/playwright_api/tracing.rb

Overview

API for collecting and saving Playwright traces. Playwright traces can be opened in [Trace Viewer](../trace-viewer.md) after Playwright script runs.

Start recording a trace before performing actions. At the end, stop tracing and save it to a file.

“‘python sync browser = chromium.launch() context = browser.new_context() context.tracing.start(screenshots=True, snapshots=True) page = context.new_page() page.goto(“playwright.dev”) context.tracing.stop(path = “trace.zip”) “`

Instance Method Summary collapse

Methods inherited from PlaywrightApi

#initialize, unwrap, wrap

Constructor Details

This class inherits a constructor from Playwright::PlaywrightApi

Instance Method Details

#group(name, location: nil) ⇒ Object

NOTE: Use ‘test.step` instead when available.

Creates a new group within the trace, assigning any subsequent API calls to this group, until [‘method: Tracing.groupEnd`] is called. Groups can be nested and will be visible in the trace viewer.

Usage

“‘python sync # 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(“playwright.dev/”) page.get_by_role(“link”, name=“API”).click() page.context.tracing.group_end() “`



76
77
78
# File 'lib/playwright_api/tracing.rb', line 76

def group(name, location: nil)
  wrap_impl(@impl.group(unwrap_impl(name), location: unwrap_impl(location)))
end

#group_endObject

Closes the last group created by [‘method: Tracing.group`].



82
83
84
# File 'lib/playwright_api/tracing.rb', line 82

def group_end
  wrap_impl(@impl.group_end)
end

#off(event, callback) ⇒ Object

– inherited from EventEmitter –



100
101
102
# File 'lib/playwright_api/tracing.rb', line 100

def off(event, callback)
  event_emitter_proxy.off(event, callback)
end

#on(event, callback) ⇒ Object

– inherited from EventEmitter –



106
107
108
# File 'lib/playwright_api/tracing.rb', line 106

def on(event, callback)
  event_emitter_proxy.on(event, callback)
end

#once(event, callback) ⇒ Object

– inherited from EventEmitter –



112
113
114
# File 'lib/playwright_api/tracing.rb', line 112

def once(event, callback)
  event_emitter_proxy.once(event, callback)
end

#start(name: nil, screenshots: nil, snapshots: nil, sources: nil, title: nil) ⇒ Object

Start tracing.

Usage

“‘python sync context.tracing.start(screenshots=True, snapshots=True) page = context.new_page() page.goto(“playwright.dev”) context.tracing.stop(path = “trace.zip”) “`



28
29
30
31
32
33
34
35
# File 'lib/playwright_api/tracing.rb', line 28

def start(
      name: nil,
      screenshots: nil,
      snapshots: nil,
      sources: nil,
      title: nil)
  wrap_impl(@impl.start(name: unwrap_impl(name), screenshots: unwrap_impl(screenshots), snapshots: unwrap_impl(snapshots), sources: unwrap_impl(sources), title: unwrap_impl(title)))
end

#start_chunk(name: nil, title: nil) ⇒ Object

Start a new trace chunk. If you’d like to record multiple traces on the same ‘BrowserContext`, use [`method: Tracing.start`] once, and then create multiple trace chunks with [`method: Tracing.startChunk`] and [`method: Tracing.stopChunk`].

Usage

“‘python sync context.tracing.start(screenshots=True, snapshots=True) page = context.new_page() page.goto(“playwright.dev”)

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(“example.com”) # Save a second trace file with different actions. context.tracing.stop_chunk(path = “trace2.zip”) “‘



57
58
59
# File 'lib/playwright_api/tracing.rb', line 57

def start_chunk(name: nil, title: nil)
  wrap_impl(@impl.start_chunk(name: unwrap_impl(name), title: unwrap_impl(title)))
end

#stop(path: nil) ⇒ Object

Stop tracing.



88
89
90
# File 'lib/playwright_api/tracing.rb', line 88

def stop(path: nil)
  wrap_impl(@impl.stop(path: unwrap_impl(path)))
end

#stop_chunk(path: nil) ⇒ Object

Stop the trace chunk. See [‘method: Tracing.startChunk`] for more details about multiple trace chunks.



94
95
96
# File 'lib/playwright_api/tracing.rb', line 94

def stop_chunk(path: nil)
  wrap_impl(@impl.stop_chunk(path: unwrap_impl(path)))
end