🦾 [浏览器自动化] 可为与不可为:CDP 视角下的 Browser 控制边界
· 阅读需 17 分钟

如果我们把人类对电脑的所有操作记为全集,那么 Browser, CDP 和 puppeteer 可操作的集合范畴如下:
- Computer:所有操作的全集
- Browser:App 层权限,Browser 为了安全,还限制了许多能力,比如说直接操作本地的文件
- CDP:专注于 Debug 能力,浏览器的非调试信息(比如说收藏网页)是没有权限访问的
- puppeteer:基于 CDP 构建,但是有一部分 CDP API 并没有用到,所以能力属于 CDP 的子集
在 Browser-Use 场景,不同于 VNC 这种更为通用的投屏方案,CDP 是有能力边界的,所以说知道它擅长什么不擅长什么,对于架构的整体设计和未来演化方向有很大的意义。
下面主要是从浏览器角度出发,列出 CDP(puppeteer) 可以做到的事情,支持难度分类如下:
- 直接支持:pptr 有封装好的现成的 API
- 间接支持:需要组合多个 pptr API/CDP API 实现相关功能
- 不能支持:CDP 完全做不到的事情
一、浏览器功能
这部分主要指浏览器级别的全局功能。包括 tabs 管理,页面导航等功能。
