微软开源MCP工具:让浏览器自动化测试 如德芙般丝滑
以“AI驱动+简化操作”为核心,彻底降低了浏览器自动化的门槛
在Web开发与测试领域,重复的浏览器操作(如点击按钮、填写表单、截图验证)往往占据了测试人员大量时间。传统自动化工具(如Selenium)需要编写复杂的代码逻辑,调试成本高,且对新手不够友好。而微软开源的MCP工具,凭借“AI驱动+标准化协议”的创新设计,彻底改变了这一现状——它让浏览器自动化操控变得像自然语言交流一样简单,目前在GitHub上已斩获近2.4万星标,成为开发者追捧的自动化神器。
本文将从核心特性、快速上手、实战示例到进阶拓展,全方位带大家掌握MCP工具,让你轻松实现浏览器自动化操作与测试。
一、MCP工具核心特性解析
MCP(Microsoft Chrome Protocol)工具的核心优势在于“简化复杂度”与“打通生态链”,其关键特性如下:
1. AI驱动的自然语言操控
无需编写繁琐的定位元素、事件触发代码,只需用自然语言描述需求(如“点击页面登录按钮”“填写用户名输入框为test123”),MCP就能通过AI解析指令,自动完成对应操作。这对于非专业测试人员或新手来说,门槛几乎为零。
2. 多AI编译器兼容
支持Cursor、VS Code等主流编辑器的AI插件,无需额外切换工具链。只需在编辑器中配置MCP服务,即可直接通过AI指令生成或执行自动化操作。
3. 全场景浏览器操作覆盖
涵盖浏览器日常操作的所有核心场景:
- 基础交互:点击、输入、选择下拉框、触发弹窗;
- 页面控制:滚动页面、切换标签页、刷新/后退;
- 数据处理:读取页面元素文本、获取表单值;
- 可视化操作:全屏截图、指定区域截图、录屏。
4. 标准化协议打通测试链
基于Chrome DevTools Protocol(CDP)标准化协议开发,可无缝对接JUnit、TestNG等测试框架,也能与CI/CD流程(如Jenkins)集成,让自动化测试从“零散操作”升级为“体系化流程”。
5. 开源免费+跨平台支持
完全开源且无商业限制,支持Windows、macOS、Linux三大系统,兼容Chrome、Edge、Brave等基于Chromium内核的浏览器。
二、快速上手:MCP工具环境搭建与配置
在开始实战前,我们需要完成基础环境准备与工具配置,全程只需3步,新手也能快速搞定。
1. 环境准备
- 基础依赖:安装Python 3.8+(MCP核心依赖Python运行环境);
- 浏览器驱动:下载ChromeDriver(需与本地Chrome浏览器版本一致,下载地址:https://sites.google.com/chromium.org/driver/),并将驱动路径配置到系统环境变量;
- 编辑器:推荐使用Cursor(原文重点提及,对AI指令支持更友好,下载地址:https://www.cursor.sh/)。
2. 安装MCP工具
通过pip命令快速安装MCP核心包(开源社区维护的Python客户端):
pip install mcp-client
3. Cursor编辑器配置MCP服务
这是关键步骤,配置完成后即可通过AI指令或代码操控浏览器:
- 打开Cursor编辑器,点击顶部菜单栏「Settings」→「Extensions」→「MCP Configuration」;
- 新建JSON配置文件(命名为
mcp_config.json),粘贴以下基础配置(根据实际浏览器路径调整):
{
"browser": "chrome", // 可选:chrome/edge/brave
"browser_path": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe", // 浏览器安装路径
"driver_path": "C:\\chromedriver.exe", // ChromeDriver路径
"timeout": 30, // 操作超时时间(秒)
"headless": false // 是否无头模式(true=不显示浏览器界面,false=显示界面)
}
- 将配置文件路径粘贴到Cursor的MCP配置框中,点击「Save」,此时编辑器底部会显示“MCP Service Running”,说明配置成功。
三、实战示例:3个高频场景的自动化实现
下面通过3个实际工作中最常用的场景,带大家体验MCP的强大功能。每个示例都包含完整代码、详细注释,复制即可运行。
示例1:自动填写网页表单并提交
需求:访问一个测试注册页面(https://example.com/register),自动填写姓名、邮箱、密码,勾选同意协议,点击提交按钮,并截图保存结果。
完整代码:
from mcp_client import MCPBrowser
# 1. 初始化浏览器(加载配置文件)
browser = MCPBrowser(config_path="mcp_config.json")
try:
# 2. 打开目标页面
browser.open_url("https://example.com/register")
# 3. 填写表单(通过元素ID/name/xpath定位,支持自然语言描述定位)
# 填写姓名(元素ID为"fullname")
browser.fill_input(element="fullname", value="张三")
# 填写邮箱(元素name为"email")
browser.fill_input(element="email", value="test_mcp@example.com")
# 填写密码(元素xpath为"//input[@type='password']")
browser.fill_input(element="//input[@type='password']", value="Mcp123456!")
# 4. 勾选同意协议(元素class为"agreement-checkbox")
browser.click(element="agreement-checkbox")
# 5. 提交表单(元素文本为"注册")
browser.click(element="注册", by="text")
# 6. 等待页面加载完成(等待2秒)
browser.wait(2)
# 7. 截图保存结果(保存路径为当前目录的register_result.png)
browser.screenshot(save_path="register_result.png")
print("表单提交完成,截图已保存!")
except Exception as e:
print(f"操作失败:{str(e)}")
finally:
# 8. 关闭浏览器
browser.quit()
代码解释:
MCPBrowser:MCP的核心浏览器操控类,通过配置文件初始化;fill_input():填写输入框,支持通过ID、name、xpath、文本等多种方式定位元素;click():点击元素,by="text"表示通过元素可见文本定位(无需记忆复杂选择器);wait():等待页面加载,避免因网络延迟导致操作失败;- 最终通过
screenshot()保存操作结果,方便后续验证。
示例2:长页面滚动与指定区域截图
需求:访问一个长内容网页(如https://example.com/long-page),自动滚动到页面底部,然后截取“相关推荐”区域的内容并保存。
完整代码:
from mcp_client import MCPBrowser
browser = MCPBrowser(config_path="mcp_config.json")
try:
# 1. 打开长页面
browser.open_url("https://example.com/long-page")
# 2. 滚动页面到顶部(初始化位置)
browser.scroll_to(position="top")
browser.wait(1)
# 3. 滚动到页面底部(支持"top"/"bottom"/具体像素值,如1000)
browser.scroll_to(position="bottom")
browser.wait(2) # 等待滚动动画完成
# 4. 截取指定区域(通过元素class定位"相关推荐"模块)
# 方式1:通过元素定位截图(自动截取元素所在区域)
browser.screenshot(element="related-recommend", save_path="related_recommend.png")
# 方式2:通过坐标截图(x=100, y=500, 宽度=800, 高度=400)
# browser.screenshot(xy=(100, 500), size=(800, 400), save_path="custom_area.png")
print("页面滚动与截图完成!")
except Exception as e:
print(f"操作失败:{str(e)}")
finally:
browser.quit()
核心亮点:
scroll_to():无需计算页面高度,直接通过“top/bottom”关键词或像素值控制滚动;- 截图支持两种模式:元素定位(精准截取目标模块)和坐标定位(灵活截取自定义区域),满足不同场景需求。
示例3:多步骤自动化测试(登录→查询→结果导出)
需求:模拟用户登录某管理系统(https://example.com/admin),输入用户名密码后登录,进入“数据查询”页面,输入查询条件,点击查询,最后导出查询结果为CSV文件。
完整代码:
from mcp_client import MCPBrowser
import time
browser = MCPBrowser(config_path="mcp_config.json")
try:
# 第一步:登录系统
browser.open_url("https://example.com/admin")
browser.fill_input(element="username", value="admin") # 用户名输入框ID为"username"
browser.fill_input(element="password", value="Admin@123") # 密码输入框ID为"password"
browser.click(element="登录") # 登录按钮文本为"登录"
browser.wait(3) # 等待登录跳转完成
# 第二步:进入数据查询页面(通过侧边栏菜单点击)
browser.click(element="数据管理", by="text") # 点击一级菜单"数据管理"
browser.wait(1)
browser.click(element="数据查询", by="text") # 点击二级菜单"数据查询"
browser.wait(2) # 等待页面加载
# 第三步:输入查询条件并查询
browser.fill_input(element="start_date", value="2024-01-01") # 开始日期
browser.fill_input(element="end_date", value="2024-01-31") # 结束日期
browser.select_dropdown(element="data_type", value="订单数据") # 下拉框选择"订单数据"
browser.click(element="查询") # 点击查询按钮
browser.wait(3) # 等待查询结果加载
# 第四步:导出查询结果(点击导出按钮,自动保存CSV文件)
browser.click(element="导出CSV", by="text")
browser.wait(5) # 等待文件下载完成
print("多步骤自动化测试完成,结果已导出!")
except Exception as e:
print(f"测试失败:{str(e)}")
# 失败时截图保存错误页面
browser.screenshot(save_path="error_screenshot.png")
finally:
browser.quit()
实战价值:
- 模拟真实用户操作流程,可直接用于Web系统的冒烟测试、回归测试;
- 失败时自动截图,方便后续排查问题;
- 支持下拉框选择、文件导出等复杂操作,覆盖大部分Web系统的核心场景。
四、进阶拓展:MCP的更多实用玩法
1. 与AI结合:用自然语言生成操作指令
MCP支持直接通过AI生成自动化指令,无需手动编写代码。例如在Cursor编辑器中,直接输入自然语言指令:
“打开Chrome浏览器,访问百度,搜索‘微软MCP工具’,点击第一个搜索结果,截图保存”
Cursor会自动生成MCP代码并执行,真正实现“一句话完成自动化”。
2. 与传统自动化工具(Selenium)的对比
| 特性 | MCP工具 | Selenium |
|---|---|---|
| 上手难度 | 极低(自然语言/少量代码) | 较高(需掌握定位器、API) |
| 代码量 | 极少(配置+核心指令) | 较多(需编写完整逻辑) |
| AI支持 | 原生支持(自然语言解析) | 需额外集成AI插件 |
| 测试链集成 | 标准化协议,无缝对接 | 需手动配置集成 |
| 适用人群 | 新手、测试/开发、非专业人员 | 专业测试工程师 |
结论:简单场景用MCP提效,复杂定制化场景可结合Selenium使用。
3. 实际应用场景拓展
- Web自动化测试:冒烟测试、回归测试、跨浏览器兼容性测试;
- 数据采集:自动抓取网页公开数据(如行业资讯、产品价格),并导出为Excel;
- 日常办公自动化:自动填写报表、批量下载文件、定时访问指定网页;
- 教学演示:快速展示浏览器操作流程,无需手动演示。
4. 进阶用法:集成到CI/CD流程
将MCP自动化脚本集成到Jenkins等CI/CD工具中,实现“代码提交→自动测试→测试报告生成”的全流程自动化:
- 在Jenkins中配置Python环境和MCP依赖;
- 编写MCP测试脚本(如示例3),输出测试结果为JSON格式;
- 配置Jenkins任务,触发条件为代码提交;
- 执行完成后,通过Jenkins插件生成可视化测试报告。
五、常见问题与注意事项
- 浏览器驱动版本不匹配:确保ChromeDriver版本与浏览器版本一致(如Chrome 120对应ChromeDriver 120),否则会启动失败;
- 元素定位失败:优先使用ID/name定位,若元素无ID/name,再使用xpath或文本定位,避免使用易变的class定位;
- 操作超时:网络较慢时,适当增加
wait()时间(默认30秒),避免因加载未完成导致操作失败; - 无头模式:生产环境测试可设置
headless: true,不显示浏览器界面,提高执行效率。
六、总结
微软开源的MCP工具,以“AI驱动+简化操作”为核心,彻底降低了浏览器自动化的门槛。无论是测试人员快速完成自动化测试,还是开发者实现重复性操作自动化,亦或是新手入门Web自动化,MCP都是一款不可多得的工具。
其开源免费的特性、丰富的操作支持、标准化的生态集成,让它在GitHub上迅速走红。通过本文的实战示例,相信你已经掌握了MCP的核心用法,不妨尝试将其应用到实际工作中,让自动化成为提升效率的“利器”。
更多推荐

所有评论(0)