CDPSession
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 } });
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?]#