用 agent desktop 读取 finder 的交互元素,先运行 list-windows --app finder 拿到目标窗口id,再执行 snapshot --app finder --window-id 指定对应窗口,额外加个 -i 参数就可以。操作跑完之后,校验返回json里的ok字段、引用数和目标元素名称是否正常。
怎么准备一个能独立复现的 Finder 窗口?
操作前先确认你已经装好 Agent Desktop,并且完成了 macOS 的辅助功能授权。接下来我们会在系统临时目录里新建一个空白文本文件,再打开这个目录,整个练习过程不会读取你本地的私人文件夹。
mkdir -p "/tmp/Agent Desktop Practice" touch "/tmp/Agent Desktop Practice/练习文件.txt" open "/tmp/Agent Desktop Practice"
怎么从多个 Finder 窗口里选对一个?
运行窗口列表命令,找到标题是 Agent Desktop Practice 的条目,把对应的 id 记下来。这个ID是动态生成的,窗口重开就会变化。
agent-desktop list-windows --app Finder
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

怎么读快照并检查可操作元素?
把下一条命令里的占位文字替换成你刚记下的ID,直接执行就行。-i 参数的作用是聚焦交互元素,命令跑完会返回JSON内容,先看顶层的 ok 字段,再核对元素树里的 name、role 和 ref_id。
agent-desktop snapshot --app Finder --window-id "替换为当前窗口ID" -i
窗口指定正确的话执行完会返回 ok: true,快照内容里能看到图标、列表这类视图切换按钮。如果找不到目标元素,先确认你当前操作的是之前新建的练习窗口。要是工具提示窗口不存在,重新运行窗口列表命令,使用当次生成的最新ID即可。
确认快照可用后,在节点里查找 name 为「图标视图」的条目,并核对 role 和 ref_id。本次示例里它的角色是 radiobutton。

如果返回的元素树太长,可以把结果保存为文件。先检查窗口信息和引用总数,再单独取出要找的按钮。「图标视图」是本例中文界面的显示名称,请按你自己系统的界面语言调整筛选词。
agent-desktop snapshot --app Finder --window-id "替换为当前窗口ID" -i > finder-snapshot.json
jq '{ok, app: .data.app, window: .data.window.id, ref_count: .data.ref_count}' finder-snapshot.json
jq '.. | objects | select(.role? == "radiobutton" and .name? == "图标视图") | {name, role, ref_id, value}' finder-snapshot.json


















