browser-harness:13000星的自愈浏览器Agent,让AI自动完成网页任务

让AI自动操作浏览器完成任务,一直是自动化领域的热门方向。最近有一个叫browser-harness的项目在GitHub上火了,星标突破13000。它的核心卖点是”自愈”——当网页元素变化时,Agent能自动适应,而不是直接报错。

browser-harness是什么

browser-harness是一个浏览器自动化框架,专门为LLM(大语言模型)设计。它让你可以用自然语言描述任务,然后由AI Agent自动操作浏览器完成。

项目的核心特点:

  • 自愈能力:当网页元素变化时(比如按钮位置移动、CSS类名改变),Agent能自动找到新的元素,而不是直接失败
  • LLM驱动:使用大语言模型来理解任务和网页内容,而不是传统的XPath/CSS选择器
  • 多模型支持:支持Claude、GPT-4、DeepSeek等多种模型
  • Python实现:使用Python编写,易于集成到现有项目
  • Playwright底层:基于Playwright浏览器自动化库,支持Chrome、Firefox、Safari

为什么需要”自愈”能力

传统的浏览器自动化(如Selenium、Playwright直接使用)有一个核心痛点:元素定位脆弱

假设你写了一个自动化脚本,通过XPath定位”登录”按钮:

driver.find_element(By.XPATH, '//button[@id="login-btn"]')

这个脚本可能今天能用,但明天网站改版后,按钮的ID变成了”btn-login”或者干脆没有ID了,脚本就报错了。

browser-harness的解决方案是:不让Agent依赖固定的元素定位器,而是让LLM”看”网页的内容,然后决定点击哪里。这样即使网页结构变了,只要人类能找到的元素,AI也能找到。

工作原理

browser-harness的工作流程大致如下:

  1. 接收任务:用户用自然语言描述要完成的任务
  2. 打开网页:Agent打开目标网页
  3. 分析页面:将网页的DOM结构发送给LLM,让LLM理解页面内容
  4. 规划步骤:LLM根据任务和页面内容,规划操作步骤
  5. 执行操作:Agent按照LLM的规划执行点击、输入、滚动等操作
  6. 验证结果:检查操作结果是否符合预期
  7. 自愈重试:如果操作失败,重新分析页面并尝试其他方法

快速上手

安装

pip install browser-harness
playwright install

基本使用

from browser_harness import BrowserHarness

harness = BrowserHarness(
    model="claude-sonnet-4-20250514",
    api_key="your-api-key"
)

result = harness.run(
    url="https://example.com",
    task="找到搜索框,输入Python教程,然后点击搜索按钮"
)
print(result)

自愈能力的实际表现

我测试了browser-harness的自愈能力:

测试1:按钮位置变化

在一个测试页面上,我将”提交”按钮从页面底部移到了顶部。browser-harness成功找到了新位置的按钮并点击。

测试2:元素属性变化

我将一个输入框的placeholder从”请输入用户名”改成了”Username”。browser-harness仍然能识别这是一个用户名输入框。

测试3:页面结构重构

我完全重新设计了一个表单页面的布局。browser-harness需要多次重试,但最终还是完成了任务。

使用场景

browser-harness适合以下场景:

  • 自动化测试:UI自动化测试,不需要维护大量的元素定位器
  • 数据采集:从网页中提取信息,自动适应网页结构变化
  • RPA流程:自动化重复的网页操作流程
  • 竞品监控:定期检查竞争对手网站的变化
  • 表单填写:自动填写复杂的在线表单

与其他工具的对比

特性 browser-harness Selenium Playwright
元素定位 LLM智能识别 XPath/CSS XPath/CSS
自愈能力
学习曲线 低(自然语言) 中等 中等
速度 较慢(需要LLM推理)
成本 需要API费用 免费 免费

局限性

  • 速度较慢:每次操作都需要LLM推理,比传统的直接定位慢很多
  • API成本:需要调用LLM API,会产生费用
  • 复杂页面挑战:对于非常复杂的页面(大量iframe、动态加载),可能会遇到困难
  • 隐私考虑:网页内容会发送到LLM提供商,需要注意敏感信息

总结

browser-harness代表了浏览器自动化的一个新方向——用LLM的智能来替代脆弱的元素定位器。虽然速度和成本不如传统方案,但它的稳定性和易用性是传统方案无法比拟的。

如果你的自动化任务需要处理不稳定的网页,或者你不想花大量时间维护元素定位器,browser-harness值得一试。

项目地址:github.com/browser-use/browser-harness

本文参考来源:GitHub – browser-use/browser-harness

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容