作者您好,首先感谢您开发了这个非常好用的插件,让我能通过 DeepSeek Harness 直接操作真实浏览器并保留登录态,体验非常棒! 我实际使用中遇到一个体验上的瓶颈,想请教一下是否有改进的空间: ## 问题描述 目前模型只能操作 `browser_snapshot` 里"被编号的可交互元素"(`browser_click` 只接受 index),无法做到: 1. **鼠标悬停(hover)展开下拉菜单**:很多网站(比如超星学习通等校园平台)的菜单是需要把鼠标移上去才会展开子菜单的,这种子菜单项不会被快照识别,模型就点不到; 2. **点击页面上任意位置/坐标**:比如点击空白处关闭浮层、点击画布元素等,这些都无法用"编号元素"完成; 3. **右键菜单等鼠标事件**:同样无法触发。 ## 可能的解决方向(抛砖引玉) 我不确定哪个更契合项目的架构,仅供作者参考: - **方向一**:在工具面新增 `browser_hover(index)`(对某元素 hover,用于展开下拉)和 `browser_click_at(x, y)`(按坐标点击),并在快照里尽量把"可展开/可悬停"的控件标记出来; - **方向二**:提供能执行任意页面 JS 的工具(类似 `browser_eval`/`browser_exec`),由模型在页面上下文里用 `elementFromPoint` + `dispatchEvent(new MouseEvent('mouseover'...))` 等方式间接实现悬停与定点点击; - **方向三**:考虑与"油猴脚本 / Tampermonkey"配合的方案,由脚本在页面注入透明操作按钮或暴露触发点,让这些按钮进入快照编号,从而模型间接触发原本需要悬停才能展现的操作。 再次感谢作者的工作,期待您的看法,也愿意协助测试!
Activity
Lum1104 commentedon Sep 10, 2026
Hi,非常棒的 idea,我周末看看
DightEndless commentedon Oct 9, 2026
作者好,以及 @naroah-u——这三点需求我们做了一版实现,先按最小可评审的粒度开了 PR #116(
browser_screenshot,视口捕获 + 调试器降级)。为什么先提这个:截图是后续几项的共同底座。
browser_hover和browser_click_at都需要走 DevTools Protocol 的可信鼠标事件(dispatchEvent造出来的不可信事件,很多框架不认),这层"调试器连接 + 协议输入"的基础设施正好由 PR #116 引入。底座落地后,hover 与坐标点击就是它之上的纯增量,可以拆成接下来两个小 PR。已经在本机验证并跑通的部分(真机 Chrome/Edge 实测):
browser_hover:悬停展开菜单——实测悬停后菜单display由none变block;鼠标移动发两次,兼容只认mouseenter的菜单。browser_click_at:协议层可信点击,isTrusted为真,能点画布、"点击空白处关闭浮层"这类没有编号元素的目标;x/y用视口比例。browser_drag(滑块/排序列表)和browser_batch(一次调用跑一串动作,省往返)。移植时踩到的两个坑,可能对你们有用:
browser_upload在 0.1.4 那条线里是坏的:bridge 在审批之后才发第二个消息传字节,而扩展侧没收到(四个派发点都没带 approvalId),于是无论用户怎么点都超时。修法是批准前就读好文件、把字节放进获批的那次派发里,这样新旧两侧任意组合都能工作。lost之后是个死胡同:所有工具回 "The controlled tab was closed" 且不弹提示,会话无法自愈。如果作者觉得方向合适,我们就按你们的代码结构把 hover 与坐标点击依次提上来(每个都带测试);如果更希望合在 PR #116 里,也可以改成那样。另外 #75 里提到的"方向二(执行页面 JS)"看到 #115 已经在做,我们就不重复了。