核心架构:为什么它不需要 DOM 树?
传统的Playwright/Selenium本质上是DOM 树解析器。它们通过 CDP(Chrome DevTools Protocol)去寻找特定的id或xpath。一旦前端框架(如 React/Vue)更新了混淆后的 Class 名,脚本就会报废。
Gemini 2.5 Pro Computer Use的底层逻辑是VLM (Vision Language Model)。它将浏览器窗口映射为一个坐标系(通常是[\$1000 \times 1000\$]{index-in-node="83" math="1000 \times 1000"})。
-
采样:以特定帧率对虚拟显示器(Xvfb)截屏。
-
推理:模型根据"意图"在图中标记特征点。
-
映射:将视觉特征转换为具体的输入事件(Input Event)。
{#section path-to-node="9"}
{#section-1 path-to-node="9"}
架构逻辑:Observe-Think-Act 闭环
Computer Use 不再依赖于 HTML 的 DOM 树(即所谓的扒源码),它的核心是一个多模态反馈环:
-
视觉感知 (Observe):AI 并不关心你的按钮是
<div>还是<button>,也不在乎它的id或class。它通过高频截取屏幕图像(基于一个标准化的[\$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"} |
技术层面的深层差异:
-
容错性 (Self-healing):
-
Playwright虽然有"自动等待"机制,但如果页面结构重构,它就彻底瞎了。
-
Computer Use具备天然的"自愈"能力。即使按钮从左边挪到了右边,或者换了图标颜色,Gemini 只要能"看"到它,操作就不会中断。
-
上下文理解:
-
Selenium没有记忆,它只执行第 N 行代码。
-
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 可能会因为"等待超时"而产生幻觉,重复点击同一个位置。