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.
使用方式
await CdpSession.DetachAsync();
傳回值
Event
Added in: v.1.30Returns an event emitter for the given CDP event name.
使用方式
CdpSession.Event(eventName);
參數
傳回值
SendAsync
Added before v1.9使用方式
await CdpSession.SendAsync(method, params);
參數
-
Protocol method name.
-
args
[Map]?<string, Args> (optional) Added in: v1.30#Optional method parameters.
傳回值
- [JsonElement?]#