在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指令或代码操控浏览器:

  1. 打开Cursor编辑器,点击顶部菜单栏「Settings」→「Extensions」→「MCP Configuration」;
  2. 新建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=显示界面)
}
  1. 将配置文件路径粘贴到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工具中,实现“代码提交→自动测试→测试报告生成”的全流程自动化:

  1. 在Jenkins中配置Python环境和MCP依赖;
  2. 编写MCP测试脚本(如示例3),输出测试结果为JSON格式;
  3. 配置Jenkins任务,触发条件为代码提交;
  4. 执行完成后,通过Jenkins插件生成可视化测试报告。

五、常见问题与注意事项

  1. 浏览器驱动版本不匹配:确保ChromeDriver版本与浏览器版本一致(如Chrome 120对应ChromeDriver 120),否则会启动失败;
  2. 元素定位失败:优先使用ID/name定位,若元素无ID/name,再使用xpath或文本定位,避免使用易变的class定位;
  3. 操作超时:网络较慢时,适当增加wait()时间(默认30秒),避免因加载未完成导致操作失败;
  4. 无头模式:生产环境测试可设置headless: true,不显示浏览器界面,提高执行效率。

六、总结

微软开源的MCP工具,以“AI驱动+简化操作”为核心,彻底降低了浏览器自动化的门槛。无论是测试人员快速完成自动化测试,还是开发者实现重复性操作自动化,亦或是新手入门Web自动化,MCP都是一款不可多得的工具。

其开源免费的特性、丰富的操作支持、标准化的生态集成,让它在GitHub上迅速走红。通过本文的实战示例,相信你已经掌握了MCP的核心用法,不妨尝试将其应用到实际工作中,让自动化成为提升效率的“利器”。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐