Skip to content

Chromedp Driver

🌐 `pkg/runner/driver_chromedp.go` — 基于 chromedp/cdproto 的 CDP 实现。

chromedpDriver 实现 Driver 接口,用 chromedp 驱动本地或远程 Chrome,执行截图、JS、证据采集等所有 CDP 操作。

📁 源码:pkg/runner/driver_chromedp.go

核心类型

符号源码说明
chromedpDriverL22Driver 实现
newChromedpDriver(opts)L67构造(内部)
(*chromedpDriver) ScreenshotL110主截图入口
(*chromedpDriver) CloseL320关闭释放

Screenshot 内部阶段

Screenshot 是最核心的方法,分阶段执行 CDP 命令:

CDP 域使用

CDP 域用途
Pagenavigate、screenshot、FrameTree
NetworkExtraHeaders、HAR、cookies
Runtimeevaluate、console API、exception
Emulationviewport、device、locale、timezone
SecurityignoreCertErrors
Fetch/Fetch.enable拦截请求

远程 vs 本地

远程 Chrome 见 --wss

证据采集

证据采集分布在 Screenshot 各阶段,受 Options 中对应开关控制:

开关采集内容
ScreenshotPNG(full page 或 viewport)
HTMLPage.getResourceContent/DOM
ConsoleLogsRuntime.consoleAPICalled
HARNetwork 事件归档
CookiesNetwork.getAllCookies

与 Driver 接口

chromedpDriver 满足 Driver 接口,因此可被 DriverPool/PoolDriver 复用,与 Runner 解耦。

下一步

基于 MIT 许可发布