SuperAPI AI 工具集

agent-browser-electron

测试与质量

查看项目

更新于 10-16 01:17

技能介绍

用途:当 agent-browser 单独使用不足以区分 Electron 渲染窗口与 CDP 目标时,用原始 CDP 目标发现来可靠定位并操作指定渲染器窗口。

主要能力:通过 curl http://127.0.0.1:<port>/json/list 枚举原始 CDP 目标,读取 title、url、type、webSocketDebuggerUrl 等字段;用 /json/version 确认端口是否为 Chromium/Electron CDP 端点;再用 agent-browser --cdp <port> tab 列出目标并以稳定 tab ID(如 t2)切换,配合 get url、get title、snapshot -i 验证目标。必要时可 close --all 后 connect <webSocketDebuggerUrl> 重置会话,或用 screenshot、console、errors 辅助排查。

使用方式:先确认应用暴露 CDP 端口,端口因项目和启动命令而异,不要假定 9222 或 9250。AIRI stage-tamagotchi 在 POSIX 下可用 APP_REMOTE_DEBUG=true APP_REMOTE_DEBUG_PORT=9250 pnpm dev:tamagotchi 启动;Windows PowerShell 用 $env:APP_REMOTE_DEBUG = "true" 与 $env:APP_REMOTE_DEBUG_PORT = "9250",Git Bash 同 POSIX 写法。若窗口为懒创建,需先从应用 UI 或主进程动作触发窗口,再重新枚举 /json/list。切换目标时不要用位置整数,应使用稳定 tab ID。

适用场景:多窗口共享同一 URL、标题为空、聊天或设置窗口在 CDP 中存在但简化 tab 列表未显示等窗口到目标映射不可靠的情况。

限制:/json/list 与 Electron 的 BrowserWindow.getAllWindows() 不同;可见窗口只有在渲染器/webContents 存在并暴露为 CDP 目标后才可检查;worker 与分离的 DevTools 页面会带来噪声;eval 返回对象值可能为 {},建议优先用 get url、get title、snapshot -i 或仅返回原始值。若目标缺失,应先考虑窗口尚未创建或未加载渲染路由,而非认定被隐藏。