首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >20.8K Star!GitHub 爆火的 Stagehand,Playwright 的 AI 进化版!

20.8K Star!GitHub 爆火的 Stagehand,Playwright 的 AI 进化版!

作者头像
开源星探
发布2026-03-16 19:39:05
发布2026-03-16 19:39:05
2670
举报
文章被收录于专栏:翩翩白衣少年翩翩白衣少年

以前写爬虫或自动化测试,最怕网页改版。一个 div 的 class 变了,或者按钮换了个位置,脚本直接报错。

用纯 AI Agent 吧,它有时候又会在页面上乱点,甚至幻觉就很可能导致生产事故。。

我们需要的是中间派:既有代码的精确执行力,又有 AI 的模糊理解力。

最近在 GitHub 上刷到一个叫 Stagehand 的开源工具,恰恰是走了一条 “人机协同” 的中间路线。这才是浏览器自动化该有的形态。

目前在 GitHub 上已突破 20K+ Star,深受广大自动化测试人员的青睐。

它没有试图用 AI 取代所有代码,而是把 AI 当作一个“智能的显式函数”来调用。这可能是目前也是未来很长一段时间内,最靠谱的自动化开发范式。

项目介绍

Stagehand 是一个“AI + 代码混合控制”的浏览器自动化框架。

你可以:

  • • 用 代码 精准控制你已经理解的页面;
  • • 用 自然语言 交给 AI 处理你不熟悉、变化快的页面;
  • • 两种方式 无缝混用

不是“要么 AI,要么代码”,而是(核心理念):

哪里确定用代码,哪里不确定交给 AI。

这是 Stagehand 最聪明的一点。

在真实业务里,自动化失败往往不是因为你不会写代码,而是因为:

  • • 页面结构复杂
  • • 元素命名混乱
  • • DOM 经常变化
  • • 不同账号看到的页面不一样

这些,本质上是 “不确定性问题”。

所以才有了 Stagehand 的这种核心思路。

核心能力

Stagehand 把复杂的浏览器操作简化为三个极其直观的方法,这种 API 设计非常符合人类直觉。而这三个核心能力,刚好可覆盖 90% 的自动化需求。

1、page.act() - 动作执行

你不再需要写选择器。

以前我们要写:

代码语言:javascript
复制
// 传统方式:一旦 ID 变了就挂
await page.click('#login-btn-v2');

现在用 Stagehand:

代码语言:javascript
复制
// Stagehand:只要按钮还是“登录”,ID 怎么变都不怕
await page.act('Click the login button');

在底层,Stagehand 会截取当前页面的 DOM 快照(甚至视觉信息),通过 LLM 分析出哪个元素最符合“登录按钮”的描述,然后调用 Playwright 的底层 API 去点击它。

但不同于纯 Agent,你可以先预览 AI 将要执行的动作,确认没问题再执行。

这一步就已经解决了很多“AI 乱点”的问题。

2、page.extract() - 数据提取

这是爬虫神技,是我觉得最杀手级的功能。

写爬虫最烦的是什么?是写正则,是解析那乱七八糟的 HTML 结构。Stagehand 允许你定义一个 Schema(数据结构),然后直接扔给 AI。

代码语言:javascript
复制
// 定义你想要的数据结构
const schema = z.object({
  productName: z.string(),
  price: z.number(),
  rating: z.number(),
});

// AI 自动从页面中提取并清洗数据
const data = await page.extract({
  instruction: "Extract the main product details",
  schema: schema,
});

无论网页是用 <table> 还是 <div> 布局,无论价格是用红色还是绿色显示的,AI 都能理解并提取出干净的 JSON 数据。

3、page.observe() - 观察与推理

允许脚本“看”一眼当前页面,然后决定下一步做什么。

observe 允许你问 AI 问题:

代码语言:javascript
复制
const elements = await page.observe("Find all links related to 'Help Center'");

这是很多人容易忽略、但极其实用的一点。

为什么说它比纯 AI 更“聪明”?

这是 Stagehand 工程味最重的一点。

传统自动化最大的问题是:网页一改,脚本全挂。

Stagehand 内置 Self-Healing(自愈)机制

当网站改版导致自动化失败时,Stagehand 会自动检测失败原因、重新调用 AI 找到新路径 、修复后继续执行。

这一步,直接解决了传统自动化“页面一改全崩”的老大难问题。

还有就是操作缓存(Action Caching),对重复操作进行自动缓存,第二次执行直接复用已验证路径,既快又稳定。

快速入手

只需一行代码即可开始使用 Stagehand。

代码语言:javascript
复制
npx create-browser-app

使用示例:

代码语言:javascript
复制
// Stagehand's CDP engine provides an optimized, low level interface to the browser built for automation
const page = stagehand.context.pages()[0];
await page.goto("https://github.com/browserbase");

// Use act() to execute individual actions
await stagehand.act("click on the stagehand repo");

// Use agent() for multi-step tasks
const agent = stagehand.agent();
await agent.execute("Get to the latest PR");

// Use extract() to get structured data from the page
const { author, title } = await stagehand.extract(
  "extract the author and title of the PR",
  z.object({
    author: z.string().describe("The username of the PR author"),
    title: z.string().describe("The title of the PR"),
  }),
);

更完整的使用文档可参考:docs.stagehand.dev。

适用人群
  • • 写过 Playwright/Selenium,但被维护成本折磨的人
  • • 想要 AI 辅助,但不敢把稳定性交给 Agent 的人
  • • 做爬虫/RPA/内部自动化工具的工程团队
  • • 需要“能上线、能长期跑”的自动化方案
写在最后

Stagehand 是目前浏览器自动化领域最优雅的解决方案之一。

它完美平衡了开发效率(不用写选择器)和运行成本(有缓存机制)。

如果你追求的是:“AI 帮我兜底,而不是接管方向盘。”

那 Stagehand,值得你认真看一眼。

GitHub:

https://github.com/browserbase/stagehand

如果本文对您有帮助,也请帮忙点个 赞👍 + 在看 哈!❤️

在看你就赞赞我!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-02-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源星探 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目介绍
  • 核心能力
  • 为什么说它比纯 AI 更“聪明”?
  • 快速入手
  • 适用人群
  • 写在最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档