Agent Skills
返回列表
微信传输助手网页文件发送器

微信传输助手网页文件发送器

AI Agent 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_624d48d2/wechat-filehelper-upload。

技能介绍

问题

qqbrowser-skill 的 38 条 browser_* 命令里没有 upload 或 setfileinput_files 这类能力,遇到需要上传文件的网页时就没有直接可用的入口。微信文件传输助手网页版恰好是这种情况:文件要先进入上传控件,再由页面加入待发送列表,最后点击发送。缺少上传命令意味着只能绕道页面上下文。

工作方式

这个技能用 browser_eval_content_js 在页面里手工构造一次上传:

  • 先用 Python 把本地文件编码成 base64,连同文件名记录下来;
  • 再用 browser_eval_content_js 注入一个 IIFE 包裹的脚本:脚本内部以 atob 加 Uint8Array 还原文件字节,构造 File 对象,装进 DataTransfer,赋值给上传控件的 .files,最后触发 change 事件;
  • 页面接收后应出现文件名与大小文本,之后重新执行 browser_snapshot 拿到最新的发送按钮索引,点击完成发送;
  • 最后用 browser_wait 等几秒,再用 eval 脚本核对聊天列表里出现了对应文件名。

因为全程都在页面上下文里完成,不需要操作系统弹出文件选择对话框,也不需要用户手动干预。

适用边界与注意点

  • 脚本必须包在 IIFE 里:browser_eval_content_js 是在全局作用域执行,直接写 const input = ... 可能撞上页面已有变量,报 Identifier has already been declared;一律用 (function(){ ... })(),并把局部变量换成 var inp 这类短名。
  • 中文与二进制要安全:文件内容必须 base64 编码后走 atob + Uint8Array 构造,直接塞字符串会破坏编码。
  • 重复注入会重复发送:每次注入都会往待发送列表加一条,如果页面里已有未发送的项,必须先发送或清理,否则同一个文件会被发多次。
  • 发送按钮可能初始 disabled:点击前先检查并移除 chat-send__button__disabled,再用 mousedown/mouseup/click 的鼠标事件序列触发,否则点击无效。
  • .files 被清空不代表失败:注入后控件的 files 可能立即变成 0,这是页面已消费文件的正常表现。
  • 索引会失效:每次命令执行后 DOM 都会变化,点击前务必重新执行 browser_snapshot。
  • 结果要筛选:browser_* 命令的输出里混着整页快照,用 grep "Result:" 或 grep -oE "Result: .*" 提取实际结果,避免长文本干扰。

使用场景

  • QQ浏览器自动化脚本遇到需要上传文件的网页,而browser命令没有上传入口,需要绕道页面上下文补上这一步。
  • 想把本地txt或二进制文件发送到微信文件传输助手网页版,且不希望弹出操作系统的文件选择框。
  • 执行qqbrowser-skill时发现无法直接设置file input的.files,需要用browser_eval_content_js构造File与DataTransfer完成注入。
  • 上传后需要确认文件是否进入待发送列表、发送按钮是否因disabled点击无效,并按最新快照索引重新点击。

适合人员

  • 用qqbrowser-skill做浏览器自动化的工程师,需要在缺少上传命令的页面补全文件上传能力。
  • 维护微信文件传输助手网页版脚本的开发者,想把本地文件静默推入待发送列表并完成发送。
  • 编写Agent工具链、需要绕过系统文件选择框的自动化工程师。
  • 排查注入上传失败、需要理解DataTransfer与change事件机制的前后端工程师。