我之前开源了一个浏览器书签 Selector。它可以选中页面元素,把位置信息转换成提示词,再交给 AI Agent 定位代码。连续使用以后,我遇到了三个影响选择效率的情况:鼠标点不到准确的元素层级,选择过程中没法正常操作页面,选错以后只能重新开始。这次更新分别补上了对应的键盘操作。

安装和基本用法

Selector 开源在 GitHub:oil-oil/selector

Selector 的 GitHub 仓库页面

进入仓库以后,点击右侧 About 里的链接打开安装页面,把页面上的 Selector 按钮拖拽到浏览器的书签栏,安装就完成了。如果之前安装过旧版本,需要把旧书签删掉重新拖一次,因为这次更新了新内容。

安装页面,把 Selector 按钮拖到书签栏

使用的时候,在任意页面上点击这个书签,页面右下角会出现一个小工具栏。这次更新在工具栏上加了一排快捷键提示,不用再记快捷键。

点击书签后,右下角出现带快捷键提示的工具栏

点击页面上的元素即可选中,按住 Shift 点击可以多选。选好以后按 Command+C(Windows 上是 Ctrl+C),或者点击工具栏上的 Copy Prompt,提示词就复制好了。

按住 Shift 多选页面上的元素

把提示词粘贴出来,内容大致是这样:先是页面的路由位置,然后是每个选中元素的核心信息,包括样式类名、标签类型、选择器,如果是 React 项目还会带上组件层级,以及元素里的文案和 HTML 片段。

粘贴出来的提示词,包含路由、选择器、React 组件层级和文案

把这些信息粘贴给 AI Agent,它就能比较方便地在代码库里定位到对应代码的位置。

鼠标选不中准确层级时

第一个问题是页面里的容器经常层层嵌套,鼠标只能点到最表面的元素。现在选中一个元素以后,按上方向键会切换到它的父级,可以一直往上切;按下方向键则切回子级。

按上方向键后,选中范围切换到父级元素

两个容器嵌套得很近时,可以先选中当前能点到的元素,再用键盘调整到准确层级,不需要反复移动鼠标碰运气。

左右方向键用来切换到相邻的兄弟元素。如果当前元素没有相邻元素,可以先用上方向键升一级,再按左右切换。上下键和左右键配合以后,选择范围可以沿着页面结构移动。

按右方向键后,选中范围切换到相邻的兄弟元素

需要先操作页面时

另一个问题是 Selector 开启后,点击动作会被用于选择元素,没法继续操作原页面。现在工具栏左上角显示 Selecting 时,按一下空格会切换成 Paused。选择暂停后,可以正常点击按钮、打开弹窗;再按一下空格,就会恢复 Selecting 状态。

按空格后工具栏显示 Paused,可以正常和页面交互

一个典型的使用场景是:想同时选中遮罩底下的一层和上面弹出来的弹窗,就可以先暂停选择,把弹窗操作出来,再按空格恢复选择,把弹窗也选上。平时也可以先按 Esc 清空选择,再按空格把工具挂在那里,需要选择的时候随时恢复。

恢复选择后继续选中页面上的其他元素

选错元素时

选错元素以后,按 Command+Z(Windows 上是 Ctrl+Z)可以撤回刚才的选择,不用把已经选好的内容全部清空。

选中多个元素后,可以用 Command+Z 逐个撤回

这轮更新没有改变 Selector 生成提示词的方式,只是让选择过程更容易控制:方向键负责调整范围,空格负责暂时交还页面操作,撤销负责保留已经完成的选择。旧版书签不会自动更新,需要删除后重新拖入一次。