← LeisureLinux 文章索引
LeisureLinux · 微信公众号文章

炸了!Gemini 2.5 Pro Computer Use —— 告别 Selenium 时代,浏览器自动化的“视觉大脑”架构实践

AI/Agent 阅读原文(微信)↗

核心架构:为什么它不需要 DOM 树?

传统的Playwright/Selenium本质上是DOM 树解析器。它们通过 CDP(Chrome DevTools Protocol)去寻找特定的idxpath。一旦前端框架(如 React/Vue)更新了混淆后的 Class 名,脚本就会报废。

Gemini 2.5 Pro Computer Use的底层逻辑是VLM (Vision Language Model)。它将浏览器窗口映射为一个坐标系(通常是[\$1000 \times 1000\$]{index-in-node="83" math="1000 \times 1000"})。

  1. 采样:以特定帧率对虚拟显示器(Xvfb)截屏。

  2. 推理:模型根据"意图"在图中标记特征点。

  3. 映射:将视觉特征转换为具体的输入事件(Input Event)。

{#section path-to-node="9"}

{#section-1 path-to-node="9"}

架构逻辑:Observe-Think-Act 闭环

Computer Use 不再依赖于 HTML 的 DOM 树(即所谓的扒源码),它的核心是一个多模态反馈环

  • 视觉感知 (Observe):AI 并不关心你的按钮是<div>还是<button>,也不在乎它的idclass。它通过高频截取屏幕图像(基于一个标准化的[\$1000 \times 1000\$]{index-in-node="85" math="1000 \times 1000"}坐标网格),利用 Gemini 2.5 Pro 强大的视觉理解能力,直接识别像素点背后的语义信息。

  • 认知决策 (Think):这是最核心的一步。模型会结合用户的自然语言意图当前截图以及历史操作链,在内部进行推理。例如:它能理解"那个红色的下载图标"就是目标,而不需要你告诉它坐标。

  • 动作执行 (Act):模型输出标准化的 JSON 指令(如click_at(450, 320)),由底层的执行器(通常是集成在浏览器扩展或驱动中的工具)模拟物理手势。

{#section-2 path-to-node="8"}

Computer Use vs. Playwright / Selenium

对于 IT 专业人士来说,最关心的是:既然有了 Gemini,那 Playwright 还要不要学?答案是:它们不是替代关系,而是"大脑"与"肢体"的关系。

特性 Selenium / Playwright (传统 RPA) Gemini Computer Use (AI Agent)
[驱动核心]{path-to-node="10,1,0,0"} [指令驱动(Explicit Instructions)]{path-to-node="10,1,1,0"} [意图驱动(Intent-Driven)]{path-to-node="10,1,2,0"}
[元素定位]{path-to-node="10,2,0,0"} [依赖 CSS Selector, XPath, ID]{path-to-node="10,2,1,0"} [纯视觉定位,无需 DOM 源码]{path-to-node="10,2,2,0"}
[抗干扰能力]{path-to-node="10,3,0,0"} [极弱。前端改个 Class 名,脚本直接报废]{path-to-node="10,3,1,0"} [极强。UI 变了只要"看起来"还是那个功能,AI 就能认出]{path-to-node="10,3,2,0"}
[编写成本]{path-to-node="10,4,0,0"} [高。需要分析页面结构,处理异步加载和等待]{path-to-node="10,4,1,0"} [极低。直接描述任务,AI 自动处理等待与重试]{path-to-node="10,4,2,0"}
[运行效率]{path-to-node="10,5,0,0"} [高。毫秒级响应,适合大规模压力测试]{path-to-node="10,5,1,0"} [较低。需要模型推理,存在 Token 消耗和延迟]{path-to-node="10,5,2,0"}
[底层实现]{path-to-node="10,6,0,0"} [模拟 WebDriver / CDP 协议]{path-to-node="10,6,1,0"} [多模态大模型 (VLM)实时推理]{path-to-node="10,6,2,0"}

技术层面的深层差异:

  1. 容错性 (Self-healing)

  2. Playwright虽然有"自动等待"机制,但如果页面结构重构,它就彻底瞎了。

  3. Computer Use具备天然的"自愈"能力。即使按钮从左边挪到了右边,或者换了图标颜色,Gemini 只要能"看"到它,操作就不会中断。

  4. 上下文理解

  5. Selenium没有记忆,它只执行第 N 行代码。

  6. Computer Use拥有上下文窗口。如果点击下载后弹出了一个预料之外的验证码,它可以识别并告诉你"这里需要人工介入"或者尝试通过推理解决。

内网 Demo 环境搭建流程(Linux 原生方案)

要在内网跑通这个 Demo,我们通常采用 Docker 容器化方案,将浏览器、VNC 服务和 Gemini 代理端解耦。

{#section-3 path-to-node="11"}

1. 基础环境准备

确保你的 Linux 宿主机已安装 Docker 和最新版的 Python 环境。

[Bash]{ngcontent-ng-c2742415990=""}

# 安装必要的工具
sudo apt update && sudo apt install -y docker.io python3-pip
2. 部署无头浏览器容器
```python

我们使用封装好的`browser-use`{index-in-node="9" path-to-node="15"}或谷歌官方提供的镜像该镜像内置了**Xvfb**虚拟帧缓冲来模拟显示器

[Bash]{ngcontent-ng-c2742415990=""}[\# 拉取并运行带有 Web 交互界面的 Docker 镜像]{ngcontent-ng-c2742415990=""}docker run -d
\--name gemini-computer-use
-p 8080:8080
-p 8501:8501
-e GOOGLE_API_KEY=\"你的_GEMINI_API_KEY\"
ghcr.io/google-marketing-solutions/computer-use-demo:latest

### 3. 配置代理与模型参数 {#配置代理与模型参数 path-to-node="17"}

在内网环境下如果无法直接访问 Google API需配置`HTTPS_PROXY`{index-in-node="31" path-to-node="18"}核心逻辑如下

-   **Model**:`gemini-2.5-pro-preview-0218`{index-in-node="7" path-to-node="19,0,0"}

-   **System Prompt**: 定义 AI 的身份为"专业操作员"

-   **Safety Settings**: 建议调低避免在自动化点击时被拦截

###   {#section-4 path-to-node="20"}

### 4. 编写最小化执行脚本 (Python) {#编写最小化执行脚本-python path-to-node="20"}

如果你想在自己的代码中集成核心逻辑如下

[Python]{ngcontent-ng-c2742415990=""}from langchain_google_genai import ChatGoogleGenerativeAI
```bash
from browser_use import Agent\

# 初始化视觉大模型 llm = ChatGoogleGenerativeAI(model=\"gemini-2.5-pro\")

# 定义意图:无需写具体的 Click 操作 task = \"进入公司内网 OA,查询 2026 年 2 月的考勤表并截图保存\"

# 启动 Agent agent = Agent(task=task, llm=llm)

await agent.run()

{#section-5 path-to-node="24"}

技术复盘:与传统工具的异同

维度 Playwright / Selenium Gemini Computer Use
[定位方式]{path-to-node="25,1,0,0"} [严格依赖 HTML 源代码(Selector)]{path-to-node="25,1,1,0"} [全视觉像素识别(Visual Grids)]{path-to-node="25,1,2,0"}

[反爬对抗]{path-to-node="25,2,0,0"} [易被检测出 WebDriver 特征]{path-to-node="25,2,1,0"} [模拟真实人类行为流,轨迹更随机]{path-to-node="25,2,2,0"}

[逻辑处理]{path-to-node="25,3,0,0"} [需要开发者写if-else处理异常]{path-to-node="25,3,1,0"} [模型根据视觉反馈自主决定下一步]{path-to-node="25,3,2,0"}

[部署成本]{path-to-node="25,4,0,0"} [低(轻量级驱动)]{path-to-node="25,4,1,0"} [(需要 GPU 加速或高带宽 API 响应)

]{path-to-node="25,4,2,0"}

LeisureLinux 总结

Computer Use Preview的出现,标志着"自动化测试"正在向"自主代理(Autonomous Agents)"转型。对于 IT 工程师来说,未来的竞争力不再是熟记 XPath 语法,而是如何通过Prompt Engineering为 AI 构建稳健的操作流。

{#section-6 path-to-node="14"}

为什么说它是"颠覆性"的?

LeisureLinux 看来,这种技术的成熟意味着 "影子 IT""无代码自动化" 进入了 2.0 时代。

  • 对于运维/开发:你不再需要为每个网站写专门的爬虫或自动化脚本。你只需要搭建一个运行环境,喂给 Gemini 一个 URL 和一句"帮我把最近三天的财务报表导出来",它就能像真人一样去登录、点击、筛选、下载。

  • 对于底层技术栈:Computer Use 实际上可以作为 Playwright 的"上层大脑"。目前很多实现方案就是 Gemini 提供坐标 -> Playwright 执行点击

底层警告:虽然视觉方案避开了 DOM 混淆,但它对网络延迟极其敏感。在内网部署时,务必保证 API 调用的响应耗时在 2s 以内,否则 Agent 可能会因为"等待超时"而产生幻觉,重复点击同一个位置。

本文整理自微信公众号 LeisureLinux 的原创内容(Linux / AI / 安全 硬核技术)。

· 阅读原文(微信公众号)

· 关注公众号 LeisureLinux,第一时间获取技术深度内容。

LeisureLinux 公众号二维码(微信扫一扫关注)