CDPSession
- 继承自: EventEmitter
CDPSession 用于直接与 Chrome DevTools 协议通信:
- 通过
session.send调用协议方法; - 通过
session.on订阅协议事件。
参考资料:
- DevTools 协议文档:DevTools Protocol Viewer
- 入门指南:https://github.com/aslushnikov/getting-started-with-cdp/blob/master/README.md
- Sync
- Async
client = page.context.new_cdp_session(page)
client.send("Animation.enable")
client.on("Animation.animationCreated", lambda: print("animation created!"))
response = client.send("Animation.getPlaybackRate")
print("playback rate is " + str(response["playbackRate"]))
client.send("Animation.setPlaybackRate", {
playbackRate: response["playbackRate"] / 2
})
client = await page.context.new_cdp_session(page)
await client.send("Animation.enable")
client.on("Animation.animationCreated", lambda: print("animation created!"))
response = await client.send("Animation.getPlaybackRate")
print("playback rate is " + str(response["playbackRate"]))
await client.send("Animation.setPlaybackRate", {
playbackRate: response["playbackRate"] / 2
})
cdp_session.detach()
Added in: v1.8从目标上分离该 CDPSession。分离后对象不再触发事件,也无法发送消息。