CDPSession
The CDPSession instances are used to talk raw Chrome Devtools Protocol:
- protocol methods can be called with 
session.sendmethod. - protocol events can be subscribed to with 
session.onmethod. 
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 } });
Methods
DetachAsync
Added before v1.9Detaches the CDPSession from the target. Once detached, the CDPSession object won't emit any events and can't be used to send messages.
Usage
await CdpSession.DetachAsync();
Returns
Event
Added in: v.1.30Returns an event emitter for the given CDP event name.
Usage
CdpSession.Event(eventName);
Arguments
Returns
SendAsync
Added before v1.9Usage
await CdpSession.SendAsync(method, params);
Arguments
- 
Protocol method name.
 - 
args[Map]?<string, Args> (optional) Added in: v1.30#Optional method parameters.
 
Returns
- [JsonElement?]#