SuperAPI AI 工具集

autofillin

办公与效率

查看项目

更新于 10-16 05:57

技能介绍

AutoFillIn 是一个浏览器表单自动化技能,触发命令为 autofillin。它用于自动填写网页表单、将文件或文件夹上传到正确位置,并处理复杂的多字段提交,同时支持登录状态持久化。

主要能力

  • 导航到任意网页表单 URL。
  • 自动填写文本字段、文本域和下拉选项。
  • 将文件或文件夹上传到表单的正确位置。
  • 通过保存的浏览器存储实现登录持久化。
  • 在提交前等待手动确认。
  • 支持多文件上传并按位置映射。
  • 提供优雅的错误恢复。

版本更新

  • v1.2.0:增强错误处理,合并配置(将 mcp-config 合并进 SKILL.md),改进健壮性(更好的端口冲突处理与进程管理),改进 Windows/Linux 跨平台兼容性。
  • v1.1.0:新增 Playwright 支持、会话持久化、文件夹上传。
  • v1.0.0:初始版本,使用 Chrome 调试模式。

快速设置

  1. 安装 Playwright 浏览器: npx playwright install chromium
  2. 首次登录(保存会话以便复用): npx playwright open --save-storage=~/.playwright-auth.json "https://your-target-site.com" 在打开的浏览器中手动登录,然后关闭。
  3. 后续运行将使用保存的会话自动登录: npx playwright open --load-storage=~/.playwright-auth.json "https://your-target-site.com"

MCP 配置 添加到 MCP 设置(Claude Code、OpenCode 等): { "mcpServers": { "playwright": { "command": "npx", "args": ["-y", "@anthropic-ai/mcp-server-playwright"] }, "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/"] } } }

Shell 集成环境变量: export CHROME_DEBUG_PORT=9222 export CHROME_USER_DATA_DIR="$HOME/.chrome-autofillin"

浏览器自动化选项 选项 1:Playwright CLI(推荐用于 OAuth 站点)

  • 首次登录保存会话: npx playwright open --save-storage=~/.playwright-auth.json "https://molthub.com/upload"
  • 后续使用加载已保存会话: npx playwright open --load-storage=~/.playwright-auth.json "https://molthub.com/upload" 优势:不会被 Google/GitHub OAuth 拦截为“不安全浏览器”;会话跨运行持久化;可与 MCP 浏览器工具配合使用。

选项 2:Chrome 调试模式(用于非 OAuth 站点)

  • 启动带调试端口的 Chrome: ./scripts/start-chrome.sh "https://example.com/form"
  • 使用默认 Chrome 配置文件(保留已有登录): ./scripts/start-chrome.sh --use-default-profile "https://example.com/form" 注意:使用自定义 --user-data-dir 的 Chrome 调试模式会被 Google OAuth 阻止。需要 Google/GitHub 登录的站点请使用 Playwright。

使用示例 基础表单填写: autofillin https://example.com/form

  • Fill "Name" field with "John Doe"
  • Fill "Email" field with "john@example.com"
  • Upload resume.pdf to file input

MoltHub 技能上传: autofillin https://molthub.com/upload Form Data:

  • Slug: autofillin
  • Display name: AutoFillIn - Browser Form Automation Skill
  • Version: 1.2.0
  • Tags: automation, browser, form, playwright, mcp
  • Changelog: v1.2.0 - Enhanced error handling, consolidated config Upload:
  • Folder: ~/clawd/skills/autofillin/ [WAIT FOR MANUAL CONFIRMATION TO PUBLISH]

多文件按位置映射上传: autofillin https://example.com/document-upload Files to upload:

  • Position 1 (ID Document): ~/documents/id_card.pdf
  • Position 2 (Proof of Address): ~/documents/utility_bill.pdf
  • Position 3 (Photo): ~/photos/headshot.jpg [WAIT FOR MANUAL CONFIRMATION]

工作流程

  1. 浏览器设置:检查已保存会话(~/.playwright-auth.json);使用会话启动 Playwright Chromium;若无会话则提示一次性登录。
  2. 导航与登录:导航到目标 URL;检测是否需要登录;如需登录则填写用户名、提示输入密码并保存会话。
  3. 页面分析:获取可访问性快照;识别所有表单字段;将字段标签映射到输入元素。
  4. 自动填写阶段:使用 fill() 或 fill_form() 填写文本字段;选择下拉选项;通过 upload_file() 上传文件/文件夹。
  5. 确认阶段:显示已填写数据的摘要;等待手动确认;用户检查并点击提交/发布。

使用的 MCP 工具

  • take_snapshot:获取页面可访问性树
  • fill:填写单个表单字段
  • fill_form:一次填写多个字段
  • upload_file:上传文件或文件夹
  • browser_click:点击按钮
  • evaluate_script:运行 JavaScript
  • navigate_page:导航到 URL

凭据管理 安全存储(推荐):

  • macOS Keychain: security add-generic-password -a "github" -s "autofillin" -w "your-password" security find-generic-password -a "github" -s "autofillin" -w
  • Linux secret-tool: secret-tool store --label="autofillin-github" service autofillin username github
  • Windows 凭据管理器: cmdkey /add:autofillin-github /user:github /pass:your-password

会话持久化 会话保存到 ~/.playwright-auth.json,包含 cookies、localStorage 和 sessionStorage。

错误处理

  • 不安全浏览器:Google OAuth 阻止;改用 Playwright 而非 Chrome 调试。
  • 需要登录:会话过期;使用 --save-storage 运行。
  • 元素未找到:页面已更改;重新获取快照。
  • 上传失败:文件类型错误;检查 webkitdirectory。
  • 端口被占用:另一个 Chrome 实例;脚本自动终止冲突进程。
  • 未找到 Chrome:未安装;运行 setup-env.sh。

故障排除 Chrome 无法以调试模式启动:

  • 检查端口是否被占用:lsof -i:9222
  • 终止现有进程:pkill -f "remote-debugging-port=9222"
  • 重试:./scripts/start-chrome.sh "https://example.com"

会话未持久化:

  • 验证认证文件存在:ls -la ~/.playwright-auth.json
  • 重新认证:npx playwright open --save-storage=~/.playwright-auth.json "https://target-site.com"

文件上传不工作:

  • 确保文件路径为绝对路径
  • 检查文件权限:ls -la /path/to/file
  • 对于文件夹上传,验证输入具有 webkitdirectory 属性

技能文件结构 autofillin/ ├── SKILL.md # 本文档(包含 MCP 配置) └── scripts/ ├── setup-env.sh # 环境设置(跨平台) ├── start-chrome.sh # Chrome 调试启动器 └── autofillin.sh # 带错误处理的主编排脚本

作者:GitHub @leohan123123 许可证:MIT