Open-AutoGLM与Selenium对比:移动端自动化优势分析
2026/4/8 14:27:27 网站建设 项目流程

Open-AutoGLM与Selenium对比:移动端自动化优势分析

1. 为什么传统方案在手机端“水土不服”

做自动化测试或批量操作的朋友可能很熟悉 Selenium——它在网页端几乎是行业标准:稳定、生态成熟、文档丰富。但当你把目光转向手机屏幕,问题就来了。

Selenium 本质是为浏览器设计的。它依赖 WebDriver 协议与 Chrome/Firefox 通信,靠 DOM 树定位元素、执行点击输入。可安卓原生 App 没有 DOM,没有 HTML 结构,只有层层嵌套的 View 组件;iOS 更封闭,连 ADB 都不支持。想用 Selenium 控制微信、小红书或抖音?基本行不通——除非你强行注入 WebView 调试桥,但那需要 root 或越狱,既不安全也不现实。

更现实的痛点是:

  • 写脚本像考古:每次 UI 更新,XPath 或 resource-id 全失效,维护成本飙升;
  • 看不懂界面:它不知道“这个红色按钮是‘立即下单’,那个带放大镜图标的是搜索框”,只能靠坐标或硬编码 ID 猜;
  • 不会思考:你得自己拆解“搜美食→点第一个结果→截图保存”为 12 行代码,AI 不参与决策,只当执行机器。

而 Open-AutoGLM 的出现,不是给旧工具打补丁,而是换了一套认知逻辑:它不依赖代码定位,而是“看懂屏幕”,再“像人一样行动”。

2. Open-AutoGLM 是什么:一个会“看”会“想”会“做”的手机AI代理

2.1 核心能力一句话说清

Open-AutoGLM 是智谱开源的手机端 AI Agent 框架,它把视觉语言模型(VLM)和安卓自动化能力拧成一股绳:用眼睛看屏幕(截图识别),用大脑理解意图(自然语言解析),用手执行操作(ADB 指令)。你不用写一行定位代码,只要说“打开小红书搜美食”,它就能从解锁手机开始,一路点开 App、点搜索框、输入文字、点搜索按钮——全程自主规划、动态纠错。

2.2 和 Phone Agent 的关系:同一技术栈的两种形态

你可能见过 AutoGLM-Phone 或 Phone Agent 这些名字。它们不是不同项目,而是 Open-AutoGLM 生态里的不同封装方式:

  • AutoGLM-Phone是框架的原始命名,强调其基于视觉语言模型(如 GLM-4V)的多模态感知能力;
  • Phone Agent是面向终端用户的易用封装,内置了敏感操作确认、人工接管入口、远程调试通道等生产级功能;
  • Open-AutoGLM是当前开源仓库名,包含完整控制端代码、文档和部署示例,是开发者直接上手的“源代码包”。

三者共享同一套内核:屏幕理解靠 VLM 编码图像+文本,动作规划靠 LLM 推理步骤,执行层靠 ADB 命令驱动。区别只在于封装粒度和默认配置。

2.3 它真正突破的三个边界

边界类型传统方案(如 Appium)Open-AutoGLM
界面理解方式依赖开发预留的 accessibility ID 或 resource-id,UI 一改全崩直接分析屏幕截图,识别图标、文字、布局关系,无需预埋标识
指令表达方式必须写代码:“find_element(By.ID, 'search_btn').click()”支持自然语言:“点右上角那个放大镜”、“把第三行第二个商品加购”
异常处理逻辑报错即中断,需人工介入重跑自动检测失败(如按钮未出现),回退一步重新截图分析,尝试替代路径

这不是“自动化升级”,而是“交互范式迁移”——从程序员思维回归人类思维。

3. 和 Selenium 对比:不是功能叠加,而是维度跃迁

3.1 场景还原:完成同一个任务,两种写法

假设任务是:“在京东 App 里搜索‘无线耳机’,进入销量最高商品页,截图并保存为 jd_headphone.png”。

  • Selenium(伪代码,实际不可行但示意逻辑)

    # 注意:这在原生 App 中根本无法运行!仅作对比示意 driver.find_element(By.ID, "com.jingdong.app.mall:id/search_tab").click() driver.find_element(By.ID, "com.jingdong.app.mall:id/search_input").send_keys("无线耳机") driver.find_element(By.ID, "com.jingdong.app.mall:id/search_submit").click() # 后续需手动找“销量排序”按钮ID,再找第一个商品……
  • Open-AutoGLM(真实可用命令)

    python main.py \ --device-id 123456789 \ --base-url http://192.168.1.100:8800/v1 \ --model "autoglm-phone-9b" \ "在京东App搜索无线耳机,按销量排序,点第一个商品,截图保存为jd_headphone.png"

关键差异在哪?

  • Selenium 要求你精确知道每个控件的 ID,且这些 ID 在不同版本、不同厂商定制系统中千差万别;
  • Open-AutoGLM 只需描述“做什么”,它自己截图、识别“搜索”文字位置、找到放大镜图标、判断“销量排序”按钮样式、定位商品列表结构——所有视觉推理都在后台完成。

3.2 技术栈对比:底层逻辑完全不同

维度SeleniumOpen-AutoGLM
通信协议WebDriver(HTTP + JSON Wire Protocol)ADB(Android Debug Bridge)+ HTTP API(调用云端 VLM/LMM)
界面感知无感知,依赖开发者暴露的 accessibility 层多模态感知:每步操作前自动截屏,VLM 分析图像+OCR 文字+上下文指令
动作生成预定义命令(click/tap/type)LLM 规划动作序列:“1. 滑动到页面底部;2. 找‘我的订单’文字;3. 点击右侧箭头图标”
适配成本App 每次更新需重录脚本,平均耗时 2–5 小时同一指令在新版本 App 上大概率仍有效,因识别逻辑基于视觉而非 ID
学习门槛需掌握 Python/Java、XPath/CSS 选择器、Appium 架构只需会写中文指令,开发者可快速阅读main.py修改参数

Selenium 是“精密仪器”,需要校准、维护、专人操作;Open-AutoGLM 是“通用工具人”,听懂人话就能开工。

4. 本地部署实操:三步让 AI 接管你的手机

4.1 硬件与环境准备:比装个微信还简单

你不需要服务器、GPU 或复杂配置。只需三样东西:

  • 一台 Windows/macOS 电脑(Python 3.10+);
  • 一部 Android 7.0+ 手机(真机或模拟器均可);
  • 一个能上网的环境(用于调用云端模型,后续可私有化部署)。

ADB 工具是唯一需要手动配置的组件。Windows 用户只需:

  1. 下载 platform-tools;
  2. 解压后复制路径(如C:\adb);
  3. 右键“此电脑”→属性→高级系统设置→环境变量→系统变量→Path→新建→粘贴路径;
  4. 打开命令行输入adb version,看到版本号即成功。

macOS 用户在终端执行:

export PATH=${PATH}:/Users/yourname/Downloads/platform-tools

(将路径替换为你实际解压位置,并加入~/.zshrc永久生效)

4.2 手机端设置:5 分钟搞定,无 root 无风险

  1. 开启开发者模式:手机“设置→关于手机→版本号”,连续点击 7 次;
  2. 开启 USB 调试:“设置→开发者选项→USB 调试”打钩;
  3. 安装 ADB Keyboard(关键!)
    • 下载 ADB Keyboard APK;
    • 安装后进入“设置→语言与输入法→当前输入法”,切换为 ADB Keyboard;
    • 此举让 AI 能通过 ADB 发送任意文字(包括中文、符号),无需依赖 App 内置键盘。

注意:整个过程不获取 root 权限,不安装可疑软件,所有操作均在安卓官方调试框架内,安全性等同于用电脑投屏。

4.3 一键启动:从克隆代码到执行指令

# 1. 克隆仓库(国内用户建议用镜像加速) git clone https://gitee.com/zai-org/Open-AutoGLM # 或 github 地址 cd Open-AutoGLM # 2. 安装依赖(自动处理 ADB 连接、图像处理等) pip install -r requirements.txt pip install -e . # 3. 连接手机(USB 或 WiFi) adb devices # 应显示设备 ID,如 123456789 # 4. 运行指令(以云服务为例) python main.py \ --device-id 123456789 \ --base-url http://192.168.1.100:8800/v1 \ --model "autoglm-phone-9b" \ "打开微博,搜索‘今日热点’,截取前三个热搜话题保存为 weibo_hot.png"

执行后,你会看到终端实时打印每一步动作:

[INFO] 截取屏幕 → 识别到“微博”App 图标 → 点击 [INFO] 等待首页加载 → 识别到搜索框图标 → 点击 [INFO] 输入文字“今日热点” → 点击搜索按钮 [INFO] 识别热搜列表 → 截取区域 (100,200,800,400) → 保存为 weibo_hot.png

整个过程无需人工干预,失败时自动重试,就像有个同事在帮你操作手机。

5. 远程控制与 API 集成:不只是命令行玩具

5.1 WiFi 远程连接:摆脱 USB 线缆束缚

USB 连接虽稳定,但限制物理距离。Open-AutoGLM 支持纯 WiFi 远程控制:

# 第一次需 USB 连接启用 TCP/IP adb tcpip 5555 # 断开 USB,用 WiFi 连接(手机和电脑在同一局域网) adb connect 192.168.1.105:5555 # 替换为手机实际 IP

之后所有--device-id参数可直接填192.168.1.105:5555,实现办公室电脑控制家里手机,或测试机群统一调度。

5.2 Python API:嵌入你自己的业务系统

不想总敲命令?用几行代码把它变成你系统的“自动化模块”:

from phone_agent.adb import ADBConnection from phone_agent.agent import PhoneAgent # 初始化连接 conn = ADBConnection() conn.connect("192.168.1.105:5555") # 创建 AI 代理(指定模型地址) agent = PhoneAgent( base_url="http://192.168.1.100:8800/v1", model_name="autoglm-phone-9b", device_id="192.168.1.105:5555" ) # 一行代码触发任务 result = agent.run("登录淘宝,进入我的订单,导出最近 7 天订单为 CSV") print(result.screenshot_path) # 获取截图路径 print(result.log) # 查看详细执行日志

这意味着你可以:

  • 给客服系统增加“帮用户查订单”按钮;
  • 为电商运营平台添加“自动巡检竞品价格”定时任务;
  • 在教育 App 中实现“学生操作步骤智能辅导”;
  • 所有场景,都不再需要写重复的 UI 定位脚本。

6. 总结:移动端自动化的下一站在哪

Selenium 教会我们“如何让机器执行指令”,而 Open-AutoGLM 让我们开始思考“如何让机器理解意图”。这不是替代关系,而是进化关系——就像 Excel 宏没有取代编程,但让千万非程序员第一次拥有了自动化能力。

Open-AutoGLM 的真正价值,不在于它能多快点开一个 App,而在于它打破了“自动化必须由开发者编写”的铁律。市场运营人员可以自己写指令批量下载竞品截图,产品经理能用自然语言验证新功能流程,甚至老人也能语音说出“帮我把微信聊天记录发到邮箱”,由 AI 全程代劳。

它把移动端自动化,从一项技术能力,变成了人人可用的交互接口。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询