browser-automation

📁 sophieguanongit/openclaw-browser-automation 📅 1 day ago
3
总安装量
3
周安装量
#56460
全站排名
安装命令
npx skills add https://github.com/sophieguanongit/openclaw-browser-automation --skill browser-automation

Agent 安装分布

cline 3
gemini-cli 3
github-copilot 3
codex 3
kimi-cli 3
cursor 3

Skill 文档

浏览器自动化 Skill

让 OpenClaw 控制浏览器进行自动化操作!

特点

  • 复用页面:默认复用现有页面,不会每次都打开新窗口
  • 持久化 Cookie:使用独立的用户数据目录,登录状态持久保存
  • 完整操作:支持点击、填表、截图、执行 JS 等

功能

  • 导航到 URL
  • 点击元素
  • 填写表单
  • 截图
  • 获取页面内容
  • 等待元素
  • 执行 JavaScript

使用时机

当用户说:

  • “打开 xxx.com”
  • “点击登录按钮”
  • “帮我填写这个表单”
  • “截个图”
  • “网页上有什么内容”

可用函数

调用方式: cd C:/Users/admin/.openclaw/skills/browser-automation && node -e "const h=require('./index.js'); h.handleXXX({...}).then(console.log)"

页面操作

  • handleNavigate({url}) – 导航到 URL(复用现有页面)
  • handleNewPage({url}) – 打开新页面
  • handleScreenshot({selector?, fullPage?}) – 截图
  • handleGetContent({selector?}) – 获取页面内容
  • handleClose() – 关闭当前页面

交互操作

  • handleClick({selector}) – 点击元素
  • handleFill({selector, value, clear?}) – 填写表单
  • handleType({selector, text, delay?}) – 模拟打字
  • handleSelect({selector, value}) – 下拉选择
  • handleCheck({selector, checked?}) – 勾选/取消勾选

等待和获取

  • handleWait({selector, timeout?}) – 等待元素出现
  • handleWaitForNavigation({timeout?}) – 等待页面跳转
  • handleGetText({selector}) – 获取元素文本
  • handleGetValue({selector}) – 获取表单值
  • handleGetAttribute({selector, attribute}) – 获取属性

高级操作

  • handleEvaluate({script}) – 执行 JavaScript
  • handleUpload({selector, filePath}) – 上传文件
  • handlePress({key}) – 按键
  • handleHover({selector}) – 鼠标悬停
  • handleScroll({direction, amount?}) – 滚动页面

状态

  • handleStatus() – 获取当前浏览器状态
  • handleCloseBrowser() – 关闭浏览器(下次会重新启动)

选择器语法

支持 CSS 选择器和文本选择器:

  • CSS: #login-btn, .submit-button, input[name="email"]
  • 文本: text=登录, text=提交
  • 组合: button:has-text("提交")

示例

用户: 打开 github.com
Agent: [调用 handleNavigate({url: 'https://github.com'})] 已打开 GitHub...

用户: 点击登录
Agent: [调用 handleClick({selector: 'text=Sign in'})] 已点击登录...

用户: 填写邮箱 test@example.com
Agent: [调用 handleFill({selector: '#login_field', value: 'test@example.com'})] 已填写邮箱...

用户: 截个图看看
Agent: [调用 handleScreenshot()] [返回截图]