browser_action
browser_action
工具通过Puppeteer控制的浏览器实现网页自动化交互。它允许Kilo Code启动浏览器、导航至网站、点击元素、输入文本、滚动页面,并通过截图提供可视化反馈。
⚠️ 安全警告
使用此工具时请注意:
- 确保访问的网站安全可靠
- 避免在浏览器中执行未经验证的操作
- 谨慎处理敏感信息
参数
该工具接受以下参数:
action
(必填): 要执行的操作:launch
: 在指定URL启动新浏览器会话click
: 在特定x,y坐标处点击type
: 通过键盘输入文本scroll_down
: 向下滚动一页高度scroll_up
: 向上滚动一页高度close
: 结束浏览器会话
url
(可选): 使用launch
操作时要导航的URLcoordinate
(可选):click
操作的x,y坐标(例如"450,300")text
(可选): 使用type
操作时要输入的文本
功能
该工具创建一个自动化浏览器会话,Kilo Code可以通过它来导航网站、与元素交互,并执行需要浏览器自动化的任务。每个操作都会提供当前状态的截图,以便进行可视化验证。
使用场景
- 当Kilo Code需要与Web应用程序或网站交互时
- 当测试用户界面或Web功能时
- 当捕获网页截图时
- 当演示Web工作流程时
主要特性
- 提供操作后的截图作为可视化反馈,并捕获控制台日志
- 支持从启动到页面交互再到关闭的完整工作流程
- 通过坐标、键盘输入和滚动实现精确交互
- 通过智能页面加载检测保持一致的浏览器会话
- 支持两种模式:本地(独立Puppeteer实例)或远程(连接现有Chrome)
- 通过自动会话清理和详细消息优雅处理错误
- 支持多种格式和质量设置的视觉输出优化
- 通过位置指示器和操作历史跟踪交互状态
浏览器模式
该工具支持两种模式:
本地浏览器模式(默认)
- 通过Puppeteer下载并管理本地Chromium实例
- 每次启动时创建全新的浏览器环境
- 无法访问现有用户配置文件、cookies或扩展程序
- 在沙箱环境中保持行为一致且可预测
- 会话结束时完全关闭浏览器
远程浏览器模式
- 连接到已启用远程调试的现有Chrome/Chromium实例
- 可以访问现有浏览器状态、cookies,可能还包括扩展程序
- 由于重用现有浏览器进程,启动速度更快
- 支持连接到Docker容器或远程机器上的浏览器
- 会话结束时仅断开连接(不关闭浏览器)
- 需要Chrome以远程调试端口运行(通常为9222端口)
限制
- 浏览器活动时,只能使用
browser_action
工具 - 浏览器坐标是相对于视口的,而不是页面
- 点击操作必须针对视口内的可见元素
- 在使用其他工具之前必须显式关闭浏览器会话
- 浏览器窗口有可配置的尺寸(默认900x600)
- 无法直接与浏览器DevTools交互
- 浏览器会话是临时的,在Kilo Code重启时不会保留
- 仅支持Chrome/Chromium浏览器,不支持Firefox或Safari
- 本地模式无法访问现有cookies;远程模式需要启用调试的Chrome
工作原理
当调用browser_action
工具时,它会遵循以下流程:
-
操作验证和浏览器管理:
- 验证请求操作所需的参数
- 对于
launch
:初始化浏览器会话(本地Puppeteer实例或远程Chrome) - 对于交互操作:使用现有浏览器会话
- 对于
close
:适当地终止或断开浏览器连接
-
页面交互和稳定性:
- 使用
waitTillHTMLStable
算法通过DOM稳定性检测确保页面完全加载 - 以适当的时间执行请求的操作(导航、点击、输入、滚动)
- 监控点击后的网络活动,并在必要时等待导航
- 使用
-
可视化反馈:
- 使用WebP格式(支持PNG回退)捕获优化截图
- 记录浏览器控制台日志以进行调试
- 跟踪鼠标位置并维护分页操作历史
-
会话管理:
- 跨多个操作维护浏览器状态
- 处理错误并自动清理资源
- 强制执行正确的工作流程顺序(启动→交互→关闭)
工作流程顺序
浏览器交互必须遵循以下特定顺序:
- 会话初始化:所有浏览器工作流程必须以
launch
操作开始 - 交互阶段:可以执行多个
click
、type
和滚动操作 - 会话终止:所有浏览器工作流程必须以
close
操作结束 - 工具切换:关闭浏览器后,可以使用其他工具
使用示例
- 当创建Web表单提交过程时,Kilo Code启动浏览器,导航到表单,使用
type
操作填写字段,并点击提交。 - 当测试响应式网站时,Kilo Code导航到网站并使用滚动操作检查不同部分。
- 当捕获Web应用程序的截图时,Kilo Code导航到不同页面并在每一步截图。
- 当演示电商结账流程时,Kilo Code模拟从产品选择到支付确认的整个过程。
使用示例
启动浏览器并导航到网站:
<browser_action>
<action>launch</action>
<url>https://example.com</url>
</browser_action>
在特定坐标处点击(例如按钮):
<browser_action>
<action>click</action>
<coordinate>450,300</coordinate>
</browser_action>
在聚焦的输入字段中输入文本:
<browser_action>
<action>type</action>
<text>Hello, World!</text>
</browser_action>
向下滚动以查看更多内容:
<browser_action>
<action>scroll_down</action>
</browser_action>
关闭浏览器会话:
<browser_action>
<action>close</action>
</browser_action>