用途:当界面绘制在 <canvas> / WebGL 上时,背后没有 DOM 节点也没有无障碍节点,snapshot/find/eval querySelector 都拿不到 ref。这是硬性限制,不是功能缺失。典型场景有游戏棋盘、语音房麦位(Zego/Agora)、地图与 3D 查看器、设计画布、游戏 HUD 和部分 Web Component。
读取方式:用 chrome-use canvas list 枚举 canvas 元素(尺寸、类型),chrome-use canvas capture out.png 保存渲染像素,或用 chrome-use screenshot /tmp/s.png 看状态。capture 取的是渲染结果而非隐藏的源数据,源数据在应用的后端存储或 API 中。
操作方式:按坐标交互。先算出目标点,再 chrome-use click <x> <y>;也可对容器执行 box @ref 获取 CSS 像素框。按住移动用 chrome-use press d --hold 800,离散动作用 chrome-use press Space。若控件文本出现在 get text 却无 @ref,先试 chrome-use get text --pierce 读取闭合 shadow root,否则截图定位后按坐标点击。
批量与实时:不要每个动作调一次 CLI,改用 chrome-use batch "press d --hold 900" "press j" "wait 200" 在单次往返中执行定时序列。更实时的控制用 chrome-use stream enable 开启 WebSocket,在同一连接上接收约 60fps 画面并发送键盘鼠标输入。
替代读法:eval 在页面主世界运行,可尝试直接读取框架或引擎的全局变量(如 Phaser/PIXI/Three 实例、store、window.GAME)获取位置或分数。
限制:canvas 与闭合 shadow root 只能按坐标操作;open shadow root 与 iframe 仍可被 snapshot -i 识别。中继模式下坐标点击可能落到用户前台标签页,建议对 canvas 重度操作使用 --launch/自有标签页,或改由应用后端/API 确认状态。隐藏源数据无法通过 capture 获取。