CDPSession
Экземпляры CDPSession
используются для работы с протоколом Chrome Devtools на низком уровне:
- методы протокола могут быть вызваны с помощью метода
session.send
. - на события протокола можно подписаться с помощью метода
session.on
.
Полезные ссылки:
- Документация по протоколу DevTools доступна здесь: DevTools Protocol Viewer.
- Начало работы с протоколом DevTools: 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 } });
Методы
DetachAsync
Добавлено до v1.9Отсоединяет CDPSession от целевого объекта. После отсоединения объект CDPSession не будет генерировать события и не может быть использован для отправки сообщений.
Использование
await CdpSession.DetachAsync();
Возвращает
Event
Добавлено в: v.1.30Возвращает эмиттер событий для указанного имени события CDP.
Использование
CdpSession.Event(eventName);
Аргументы
Возвращает
SendAsync
Добавлено до v1.9Использование
await CdpSession.SendAsync(method, params);
Аргументы
-
Имя метода протокола.
-
args
[Map]?<string, Args> (опционально) Добавлено в: v1.30#Опциональные параметры метода.
Возвращает
- [JsonElement?]#