Table of Contents

Interface ICDPSession

Namespace
Microsoft.Playwright
Assembly
Microsoft.Playwright.dll

The CDPSession instances are used to talk raw Chrome Devtools Protocol:

  • protocol methods can be called with session.send method.
  • protocol events can be subscribed to with session.on method.

Useful links:

  • Documentation on DevTools Protocol can be found here: DevTools Protocol Viewer.
  • Getting Started with DevTools Protocol: https://github.com/aslushnikov/getting-started-with-cdp/blob/master/README.md
var client = await Page.Context.NewCDPSessionAsync(Page);
await client.SendAsync("Runtime.enable");
client.Event("Animation.animationCreated").OnEvent += (_, _) => Console.WriteLine("Animation created!");
var response = await client.SendAsync("Animation.getPlaybackRate");
var playbackRate = response.Value.GetProperty("playbackRate").GetDouble();
Console.WriteLine("playback rate is " + playbackRate);
await client.SendAsync("Animation.setPlaybackRate", new() { { "playbackRate", playbackRate / 2 } });
public interface ICDPSession : IAsyncDisposable

Methods

DetachAsync()

Detaches the CDPSession from the target. Once detached, the CDPSession object won't emit any events and can't be used to send messages.

Task DetachAsync()

Returns

Task

Event(string)

Returns an event emitter for the given CDP event name.

ICDPSessionEvent Event(string eventName)

Parameters

eventName string

CDP event name.

Returns

ICDPSessionEvent

SendAsync(string, Dictionary<string, object>?)

Task<JsonElement?> SendAsync(string method, Dictionary<string, object>? args = null)

Parameters

method string

Protocol method name.

args Dictionary<string, object>

Optional method parameters.

Returns

Task<JsonElement?>