最佳 Selenium 替代方案

Selenium 通过 WebDriver 协调浏览器。ego(lite) 给你的 Agent 一个真实的浏览器,和你并肩使用。 ego(lite) 省掉了 driver 和 Grid,同时保留你明确配置的浏览器状态。精简的 Snapshot 和批量操作减少了模型轮次和 Token 用量。

ego(lite) 对比 Selenium

ego(lite) 与 Selenium 的功能对比。
功能ego(lite)Selenium
任务是怎么完成的描述任务;AI Agent 通过 /ego-browser 控制 ego(lite)用 Java、Python、C#、Ruby 或 JavaScript 编写 WebDriver 脚本
等待与不稳定AI Agent 通过 /ego-browser 读取 Snapshot 并执行操作显式等待、失效元素处理、重试次数
复用你真实的 Chrome 登录状态初次设置时可导入符合条件的浏览器状态默认不能;持久化配置文件需要显式的生命周期管理
设置安装 ego(lite),在你的 Agent 里运行 /ego-browser一个语言项目,外加每种浏览器各一个 driver
AI Agent 支持通过 /ego-browser 原生支持没有官方 MCP;有 mcp-selenium 这类社区实现
并行任务Space 在一个可见的浏览器内隔离各个任务由你运维的 Grid 节点或并行 driver 会话
跨浏览器覆盖面仅 Chromium通过 WebDriver 支持 Chrome、Edge、Firefox 和 Safari
反机器人与 CAPTCHA 处理不做绕过;使用允许的数据、合理的频率,遇到验证交给人工审核WebDriver 指纹和网站管控依然存在;绕过脚本既不可靠,也不合规
会话与 MFA 安全配置独立的浏览器状态;遇到 OTP、MFA 和敏感操作时暂停持久化配置文件需要生命周期管理;绝不要用自动化绕开账号验证
定位器维护实时快照和语义化目标;有歧义的变化需人工复核在代码里维护 CSS/XPath 和显式等待
老旧系统的浏览器界面在隔离的 Space 中运行基于浏览器的老旧流程,高风险步骤需确认只要老旧应用提供受支持的浏览器界面,WebDriver 就能用
低代码工作流用自然语言描述有边界的任务,然后监督运行过程以代码为先的语言绑定和测试框架配置
日常使用的浏览器可以。你在自己的 Space 里浏览,Agent 在它们自己的 Space 里工作不是,它是面向测试的自动化库
可复用技能(即将上线)将成功的运行过程提炼为可复用技能,用于重复执行的任务(限量测试中)没有内置的同类功能
价格浏览器免费下载;请确认最新条款免费软件,Apache-2.0(Grid 容量的成本由你承担)

最近更新 2026年8月30日

开发者用户来自

  • Vercel
  • OpenAI
  • Anthropic
  • SpaceX
  • Google
  • Microsoft
  • DJI
  • DeepSeek
  • Kimi
  • TikTok
  • MiniMax
  • SAP
  • ZARA
  • eBay
  • Cisco
  • Trip.com
  • LINE
  • NHN
  • Hyundai Motor

为什么 ego(lite) 比 Selenium 更好

对于需要长期维护的跨浏览器测试体系,Selenium 是合适的抽象。当浏览器本身就是工作界面时,ego(lite) 才是合适的抽象:让 Agent 在一个可见的本地 Space 里搜索、排查、提取、填写、测试或操作已授权的网站,而你可以继续浏览。

更少重试,更清晰的恢复

Selenium 用户都熟悉这个循环:调好显式等待,撞上 stale element,加一次重试,等下一次 UI 发布后,又得去追另一个「element is not clickable」报错。运行 /ego-browser,你的编程 Agent 会读取当前的 Snapshot,基于稳定的 @N 引用执行操作,并在页面发生有意义的变化后再检查一遍。恢复过程是可见的,而不是藏在脆弱的等待里,所以交互式工作更容易诊断。对于你自己的应用,把无障碍名称或有意设置的 test ID 与实时快照搭配使用;对于第三方网站,匹配到多个目标时直接判为失败,而不是去猜一个 CSS 或 XPath 选择器。

并行多任务,执行更快

在 Selenium 里同时跑两个浏览器任务,要么自己维护多个并行的 driver 会话,要么搭一套 Grid。这套机制适合跑夜间的跨浏览器测试矩阵,但对付你午饭前想搞定的三件小事,就太重了。在 ego(lite) 中,Space 可以在浏览器内部把任务工作分隔开,在机器和账号限制允许时,多个 Space 可以同时运行。编程 Agent 通过 /ego-browser 分别控制每一个 Space;窗口和会话的边界取决于配置文件的设置。对于社交平台,调研要保持只读、范围收窄、结果缓存、来源可追溯;有导出功能或经批准的 API 时就用它们,点赞、关注、发消息、外联或任何账号变更都必须由人来操作。

不再反复来回 消耗更少 Token

原生 Selenium 脚本因为没有模型参与,不消耗 token。但一旦把 WebDriver 包装给 Agent 用,账单很快就来了:Selenium 至今没有官方 MCP server,社区实现的服务器又常常把一整棵沉重的 DOM 树塞进模型的上下文。运行 /ego-browser,你的编程 Agent 可以在每轮里用几行 JavaScript 批量执行多个操作来控制 ego(lite)。在我们录制的示例中,聚焦后的 Snapshot 大约是 200 到 400 Token,但输出大小会随页面和提取内容而变化。这为手工测试人员提供了一条有人监督、低代码的路径来处理有边界的工作,但它不能替代断言和审核,也不能替代针对非浏览器老旧系统的、经批准的 RPA 集成。

Claude Code · ego(lite)
>/ego-browser Add the first product to the cart, then check checkout loads
●Bash(
ego-browser nodejs <<'EOF' await openOrReuseTab('localhost:3000') await click('.product-card') await click('.add-to-cart') await click('a[href="/checkout"]') cliLog('checkout loaded') EOF
)
⎿Output:
[t=4480ms] checkout loaded
Done. Both steps work.
─── 1 tool call · ↑ 1.1k tokens ───
Claude Code · mcp-selenium
>Add the first product to the cart, then check checkout loads
●selenium - start_browser (MCP)(browser: "chrome")
⎿Result
Browser started with session_id 4f1c…
↑ 1.6k tokens sent so far
Fresh Chrome, no cookies and no logins. Loading the storefront.
●selenium - navigate (MCP)(url: "localhost:3000")
⎿Result
Navigated to localhost:3000
↑ 3.1k tokens sent so far
Nothing came back about the page itself. Reading the accessibility resource to find the first product.
●selenium - accessibility://current
⎿Accessibility tree
… +214 lines (ctrl+o to expand)
↑ 4.9k tokens sent so far
First product card is .product-card. Clicking it.
●selenium - interact (MCP)(action: "click", by: "css", value: ".product-card")
⎿Result
Clicked element
↑ 6.8k tokens sent so far
Product page is up, so everything I just read is out of date. Reading the tree again.
●selenium - accessibility://current
⎿Accessibility tree
… +206 lines (ctrl+o to expand)
↑ 9.2k tokens sent so far
Add to cart is .add-to-cart.
●selenium - interact (MCP)(action: "click", by: "css", value: ".add-to-cart")
⎿Result
Clicked element
↑ 11.2k tokens sent so far
Added. Opening checkout, then I still have to confirm it loaded.
●selenium - interact (MCP)(action: "click", by: "css", value: "a[href='/checkout']")
⎿Result
Clicked element
↑ 13.6k tokens sent so far
─── 7 tool calls · ↑ 13.6k tokens ───

同样的任务,同样的模型。 左边:ego(lite) 里一次打包的 JavaScript 调用,总共 1.1k Token。 右边:经社区 MCP 服务器的 Selenium,7 次往返,token 涨到 13.6k。

已登录状态,为 Agent 原生打造

Selenium 无法接入你正在使用的 Chrome 配置文件。Chrome 开着的时候用 ChromeDriver 指向它,只会得到一句 "user data directory is already in use"。ego(lite) 基于 Chromium 构建,可以在初次设置时导入你选定的 Chrome 状态。当你的编程 Agent 运行 /ego-browser 时,它可以使用你明确配置的浏览器状态,但 SSO、2FA、会话过期和 CAPTCHA 验证仍可能打断任务。绝不要把密码、OTP 或恢复码写进脚本,遇到 MFA 或 CAPTCHA 时要暂停,等账号所有者来处理。Selenium 或 ego(lite) 浏览器仍可能收到 403 或服务商的验证,所以请使用允许使用的数据、合理的请求频率,以及经批准的 API 或导出功能,而不是 stealth 补丁、Agent 轮换或其他规避手段。

让切换无缝衔接

不用迁移你的 WebDriver 测试套件。把你希望 Agent 直接处理的浏览器工作迁过来,包括搜索、调研、数据提取、表单、测试,以及回归测试套件之外需要登录的工作流。

1

下载 ego(lite)

下载 ego(lite),查看初次设置中导入选定 Chrome 状态的选项。在授予 Agent 访问权限之前,先确认哪些会话和扩展程序符合导入条件。

2

用 /ego-browser 运行你的第一个任务

在 Claude Code、Codex 或 Cursor 里粘贴一句话,按下回车。不用 driver 二进制,不用 Grid,也不用配置 MCP。

粘贴到你的 Agent 里

/ego-browser 打开 ego.app,列出页面上每个按钮的文字

3

看它开始工作

按这种方式配置后,任务会在自己的 Space 里运行。在支持的情况下可以实时旁观或接管,并在 Agent 的 CLI 里核对结果;会话过期和网站弹出的提示仍需要人工复核。

ego(lite) 的 Space 概览,四个浏览器任务并排运行:Claude Code 在 Yahoo Finance 上追踪苹果股价,Codex 在 cars.com 上按年份筛选车型,Hermes 在完成一项 SaaS 后台任务,一位用户在抓取 X 上的数据,还有一只手正在点击 + 打开另一个 Space

CI 里的跨浏览器回归测试,继续用 Selenium。

各工具的适用场景

以下情况选择 ego(lite)

  • 任务涉及需要登录的网站:仪表盘、后台管理面板,或任何 SSO、2FA 保护的页面。
  • 你希望交给 Agent 直接处理、而不是写进回归测试套件的浏览器工作。
  • 想让几个任务在并行的 Space 里同时跑,又不想搭一套 Grid。
  • 在意每个任务的 token 成本。Snapshot 输入加批量 JavaScript,比每个操作都调一次 MCP 划算得多。

何时选择 Selenium

  • 需要覆盖 Firefox 和 Safari。ego(lite) 只支持 Chromium。
  • 团队用 Java、Python、C#、Ruby 或 JavaScript 写测试,需要官方 WebDriver 绑定。
  • 在 Selenium Grid 上跑企业级回归测试。
  • 想要 WebDriver 标准、Apache-2.0 治理模式,以及 Stack Overflow 上几十年积累的 QA 答案。

将 ego(lite) 与其他浏览器自动化工具对比

与 Puppeteer、Playwright MCP、Claude Chrome extension、Browser Harness 以及另外 7 款工具的逐项对比。

常见问题

Selenium 是什么?

Selenium 是业界运行时间最长的浏览器自动化项目,也是 WebDriver 的参考实现,支持 Java、Python、C#、Ruby 和 JavaScript 绑定,还有用于分布式跨浏览器测试的 Grid。它在 QA 回归测试上表现出色。像 Selenium vs Playwright 或 Selenium vs Puppeteer 这类搜索通常比较的是测试框架;而这篇讲的是当浏览器里跑的是一个 AI Agent、而不是一段脚本,且是在你已经登录的浏览器里工作时,情况会有什么不同。

ego(lite) 是不是一个好的 Selenium 替代方案?

对于由 Agent 驱动的浏览器工作,是的:直接描述搜索、调研、数据提取、表单、测试或需要登录的工作流,无需 WebDriver 脚本或 Grid。对于跨浏览器回归测试套件和 CI 里的 Selenium Grid 流水线,不是。已提交的测试继续用 Selenium,围绕它们的浏览器工作交给 ego(lite)。

Selenium 适合用来做 AI 浏览器 Agent 吗?

Selenium 生来是为了确定性的测试脚本,不是为 LLM 驱动的循环设计的。把 WebDriver 包装给 Agent 用,意味着要么塞进沉重的 DOM,要么依赖 mcp-selenium 这类社区 MCP 服务器,而 Selenium 项目本身没有官方 MCP。ego(lite) 从一开始就是为 Agent 设计的:运行 /ego-browser,AI Agent 就能用 Snapshot 输入和批量 JavaScript 控制 ego(lite)。

有没有 Selenium MCP 服务器,我能把 Selenium 和 Claude Code 一起用吗?

没有官方的 Selenium MCP server。维护者也提到过,交互式的 LLM 会话会很快耗尽上下文。mcp-selenium 这类社区实现确实存在,但常常要在页面每次变化时重新读取一整棵沉重的无障碍树。ego(lite) 完全跳过了 MCP:直接在 Claude Code、Codex 或 Cursor 里运行 /ego-browser。

Selenium 能用我现有的 Chrome 配置文件和登录状态吗?

不能用 Chrome 当前正在使用的那个配置文件。Selenium 的 issue tracker 记录过:Chrome 开着时,ChromeDriver 无法附加到正在使用的默认配置文件。ego(lite) 可以在初次设置时导入符合条件的浏览器状态,但每个任务仍取决于会话是否过期、MFA、网站政策,以及授予该配置文件的权限。

Playwright vs Selenium:各有什么优缺点?

Playwright vs Selenium 通常比的是测试工程本身。Playwright 是现代框架,有自动等待和很强的调试能力。Selenium 是 W3C WebDriver 标准,官方支持五种语言,还有 Grid 用于跨浏览器测试矩阵。两者都是从一个空白浏览器开始的。如果是 Agent 在做浏览操作,更大的问题其实是它能不能复用你的登录状态。可以看 ego(lite) vs Playwright 和 ego(lite) vs Puppeteer 这两篇。

Selenium 和 Puppeteer,哪个更好?

在测试自动化场景里,Selenium vs Puppeteer 主要看语言和浏览器覆盖面。Puppeteer 是专注 Chrome 的轻量级 Node.js 库。Selenium 支持跨浏览器、多语言,还有 Grid。而对比较 AI Agent 路径的 selenium puppeteer 类搜索来说,两者都还是要写脚本、维护脚本。ego(lite) 对需要登录状态的 Agent 工作直接去掉了这一层。

Selenium vs Playwright:哪个更适合 AI Agent?

两者都不是开箱即用的 Agent 浏览器。团队通常会额外加上 Playwright MCP,或是社区的 Selenium MCP 包装层,但那仍然意味着每个操作都要调一次工具,配置文件也是全新或需要手动配置的。ego(lite) 是原生的 Agent 路径:运行 /ego-browser,AI Agent 就能控制 ego(lite),整个任务下来 token 用得更少。

为什么站点会检测 Selenium,ego(lite) 能绕过吗?

navigator.webdriver 和其他自动化信号本就是 WebDriver 生态的一部分,所以网站可能会对 Selenium 会话发起验证。ego(lite) 不是隐身工具,不会绕过 Cloudflare、Akamai、CAPTCHA 或其他访问控制。请使用经批准的 API 或公开数据,保持合理的请求频率,并在出现验证时停下来交给人工审核。

在 Selenium 里遇到 CAPTCHA 或 Turnstile 该怎么处理?

不要自动化处理 CAPTCHA,也不要试图规避它。暂停运行,让有权限的人完成验证,或者使用网站文档里提供的 API、导出功能或允许的自动化方式。同样的规则也适用于 ego(lite)。浏览器配置文件可以保留一个正当的会话,但无法赋予网站没有给你的权限。

Selenium 能抓取社交媒体而不被封吗?

没有万无一失的变通办法。优先使用公开页面、平台 API 或导出功能;以合理的频率收集最少的数据;缓存结果;并遵守各平台的条款。未经明确的人工批准,不要自动点赞、关注、发消息、外联或修改账号。ego(lite) 可以把允许的只读调研隔离在一个 Space 里,但它不是防封服务。

怎样在不保存密码的情况下,让 Selenium 的 Chrome 会话保持登录?

只在你的组织和该网站允许的情况下,使用一个专用、有访问控制的持久化配置文件。不要让 Selenium 指向别人正在使用的 Chrome 配置文件,也绝不要把密码、OTP 或恢复码写进源代码。对于有人监督的 Agent 工作,ego(lite) 会在初次设置时导入一份浏览器状态的副本,并在 MFA 或新的验证步骤需要人来处理时暂停。

哪种 Selenium 替代方案适合现代前端框架?

合适的选择取决于具体任务。断言和跨浏览器回归测试继续交给 Selenium 或其他测试框架,并使用你的团队自己掌控的语义化定位器或 test ID。对于涉及完成 hydration 的页面、shadow DOM 和不断变化的布局,并且由 Agent 驱动的交互式工作,ego(lite) 让 Agent 检查当前渲染出的界面,并以可见的方式恢复,而不是依赖一份冻结的 XPath 脚本。

有没有面向手工测试人员的无代码 Selenium 替代方案?

ego(lite) 支持在隔离的 Space 里执行有人监督、用自然语言描述的浏览器任务,所以手工测试人员可以描述一个有边界的流程,并在需要判断时接手。它不能替代用代码编写的回归测试套件、断言、审批或无障碍测试。当团队需要在 CI 里运行可重复的代码时,Selenium 仍然更合适。

怎样自动化一个没有 API 的老旧系统?

如果系统提供浏览器 UI,就用浏览器自动化,设置明确的检查点,并让破坏性、涉及资金或身份的操作保持人工批准。如果它是没有浏览器界面的桌面或终端应用,那么 Selenium 和 ego(lite) 这类 DOM 工具就是错误的抽象层。请使用经批准的 RPA 或无障碍集成,并记录每一步。

有工具能为 Selenium 生成稳定的 CSS 或 XPath 选择器吗?

生成器可以建议一个定位器,但没有哪个 CSS 或 XPath 能在网站改版后永远稳定。在你自己的应用里,优先使用无障碍名称和有意设置的 test ID,让选择器简短且有意义,并在匹配到多个元素时直接判为失败。ego(lite) 在运行时用实时页面快照来选择语义化目标,同时依然受益于同样良好的标记约定。

ego(lite) 免费吗,需要装任何 driver 吗?

ego(lite) 可以作为免费的本地浏览器下载使用,它有自己的系统要求和支持的 Agent 范围。按文档中的 /ego-browser 流程使用时,不需要 ChromeDriver、GeckoDriver 或 Grid。部署前请确认当前的 macOS、Windows 和 Agent 支持情况,并把模型、主机和维护成本考虑在内。

为你的 Agent 配备真实浏览器

免费使用,运行在你的电脑上,一键导入 Chrome 浏览器配置文件。支持 Claude Code、Codex、Cursor,以及任何能写代码的 CLI Agent。