基于 AI 大模型与 Playwright 的 Web UI 自动化测试实践
近期团队将 UI 自动化从 Selenium 迁移至 Playwright,结合 AI 大模型后,脚本质量与编写效率均有显著提升。本文从原理对比出发,分享如何利用 MCP 驱动浏览器,以及基于 Robot Framework 的封装设计思路。
一、Playwright 与 Selenium 对比
Selenium 使用 WebDriver 协议对接浏览器,相当于在浏览器上套了一层接口。这种方式导致它无法获取网络请求参数、控制台信息等底层数据,执行速度也相对较慢。在 AI 应用场景下,这种底层能力的缺失限制了相关工具的发展。
Playwright 则直接通过 CDP(Chrome Devtools Protocol)与浏览器通信。它能更精准地捕获页面状态和交互细节,执行速度更快。对于 AI 模型来说,这些丰富的上下文数据是生成高质量自动化脚本的关键基础。
二、AI 与 Playwright 的结合
如何让 AI 有效辅助 Web 自动化?核心在于利用 MCP(Model Context Protocol)。MCP 能让 AI 模型分析页面 DOM 元素,记录交互细节,并抓取页面结构。
实际使用中,AI 并非万能。当前大模型百花齐放,差异对普通开发者而言并不显著。关键在于如何引导 AI:
- 辅助而非替代:保持半自动模式,必须 Review 生成的代码。
- Prompt 工程:积累有效的提示词,当 AI 逻辑混乱时立即停止,手动编码教会它正确的写法。
- 复杂拆分:遇到复杂场景,手动拆分模块加入设计模式,再让 AI 填充。
演示效果
通过安装 Playwright MCP Server,AI 能够分析页面并输出脚本。虽然演示中运行完美,但生产环境仍需根据业务逻辑进行调整。这里的关键是理解 AI 生成的代码逻辑,而不是盲目复制粘贴。
三、Playwright 封装设计建议
分层设计能提升可维护性和扩展性。主要思路如下:
- 基础层:基于 Playwright 原生能力(如 click、input),封装业务通用的
XxxPlayWright类。 - 组件层:将告警框、下拉框等通用控件模块化,可使用 Mixin 等设计模式。
- 关键字层:封装业务操作关键字,提供具体的 UI 操作能力。
- 用例层:上层 Case 只调用业务关键字,保持测试逻辑清晰。
四、Robot Framework Browser 集成
本方案基于 Robot Framework,其 Browser 库由 Playwright 驱动。相比原生 Playwright,RF 框架能自动管理资源清理(如 new browser、new page),确保资源隔离。
环境准备
仅支持 Python 3.9+,Node.js 推荐 18/20/22 LTS 版本。
- 安装 Node.js。
- 更新 pip:
pip install -U pip - 安装 RF-Browser:
pip install robotframework-browser - 初始化依赖:
rfbrowser init
如果命令未找到,尝试 python -m Browser.entry init。
注意:Playwright 不需要像 Selenium 那样单独安装驱动,它提供了自动安装机制。使用 RF 库时,通过 rfbrowser init 即可完成环境配置。

