用途:为团队提供小而常驻的 Chromium 浏览器冒烟测试切片,诚实验证真实页面交互,无需创建浏览器专属的 MCP 工具。
主要能力与做法:优先用 Edge 加载本地静态 HTML 做确定性切片,再搭配一个稳定公共网页满足联网覆盖需求。首层范围聚焦页面内容发现,即地标结构、ARIA 标注的输入框和按钮。启动 Edge 时使用应用窗口模式,配合启动整洁化、--force-renderer-accessibility 以及隔离的 --user-data-dir 以保证可靠性。
断言示例:本地层可断言地标或导航容器可被发现、ARIA 标注的搜索框解析为 Edit、ARIA 标注的主操作解析为 Button。交互层可加入一个可编辑字段,通过输入并读回验证 ui_type + ui_read;加入一个始终可见的文本节点验证 ui_read;加入页面自有的点击后断言(文本显示、文本变化、状态切换)以证明 ui_click 确实改变了 DOM,而非仅自动化层返回成功。点击后断言应位于页面内容之内,避免浏览器外壳、URL、标签页或地址栏检查。
测试框架实现:使用 --app= 应用窗口启动,配合可访问性与启动整洁化及隔离配置文件,等待所有页面自有的就绪选择器后再执行断言。仅当就绪未出现时,才使用狭窄的测试专用路径关闭已知 Edge 首次运行/同步对话框;若出现同步弹窗,仅查找并关闭 "Got it" 按钮。先关闭启动的 Edge 窗口,仅在未能及时退出时才终止专用的临时配置文件浏览器进程树,并在拆卸后删除临时配置文件。
公共站点冒烟断言:以规范占位符或标签文本作为可访问名称(如 TodoMVC 的 What needs to be done? → Edit);按可见文本加稳定控件类型定位长期存在的链接或按钮。优先使用浏览器/工具厂商维护的公共演示,而非个人维护的练习站点。公共页面使用 15 秒以上超时,本地为 5 秒。
反模式:不要依赖文案或可用性不受控制的公共练习站点;不要把地址栏/标签栏/浏览器外壳断言混入首个切片;不要依赖环境浏览器状态进行默认覆盖,应使用隔离配置文件;不要仅凭 clickResult.Success == true 认定 Chromium 交互成功,必须要求页面内容产生效果。