用Playwright MCP让AI帮你完成所有浏览器自动化

MCPAIGC

✨文章摘要

Playwright MCP(Model Context Protocol)是微软基于 Playwright 框架推出的 AI 浏览器自动化新协议。它通过结构化快照数据和自然语言指令结合大型语言模型(如 GPT),实现无需编码的网页交互。无论你是要测试登录流程、抓取价格数据,还是用 AI 远程控制浏览器,Playwright MCP 都能大幅降低门槛,让“说人话”也能驱动自动化脚本。本篇将从功能介绍、技术架构、使用方法到实际场景,带你全面理解这一自动化革命。

🥊前言:告别那些痛苦的“选择器地狱”吧!

曾几何时,为了让自动化测试顺利通过,我们花了几个小时反复调试 XPath、CSS 选择器,还得忍受测试一夜之间“全红”的绝望。而现在,只需要输入一句话:

“点击登录按钮,输入用户名和密码,再点击提交。”

Playwright MCP 就能自动完成整个流程。

不再写代码,不再找选择器,甚至不再打开 VS Code。你只需要会“说话”,剩下的就交给 MCP。这不仅仅是效率的提升,更是自动化体验的飞跃。

什么是 Playwright MCP?

✅ 定义

Playwright MCP 是 Microsoft 基于 Playwright 自动化框架 开发的 AI驱动协议,其目标是:

让大型语言模型(LLM)能够像人类一样,通过结构化语义而不是像素截图与网页交互。

✅ 技术栈组成

组件说明
Playwright跨浏览器自动化框架,支持 Chromium、Firefox 和 WebKit
MCP 协议标准化语言模型与工具交互方式,统一指令格式
LLM(GPT/Claude)理解人类自然语言指令,生成结构化控制命令
快照系统结构化访问页面元素,不依赖 DOM/CSS

✅ 为什么不是 Selenium?

对比项SeleniumPlaywright MCP
操作方式基于选择器基于结构化快照
编码门槛低(自然语言驱动)
稳定性易崩自动适应页面变化
执行性能快 30%~50%
跨设备有限支持手机、平板仿真

Playwright MCP 的工具解释

一、浏览器基础控制

1. browser_close

  • 功能:关闭当前浏览器实例(所有标签页)。
  • 场景:自动化任务完成后清理环境。
  • 示例:browser_close() → 关闭浏览器,释放资源。

2. browser_resize

  • 功能:调整浏览器窗口大小(支持像素或设备预设)。

  • 参数:width(宽度)、height(高度),或 device(设备名,如 iPhone 14)。

  • 示例:

    • browser_resize({width: 1280, height: 720})
    • browser_resize({device: "Pixel 7"})

3. browser_install

  • 功能:安装 Playwright 支持的浏览器(Chromium/Firefox/WebKit)。
  • 示例:browser_install({browsers: ["chromium", "firefox"]})

二、页面交互核心命令

4. browser_click

  • 功能:点击页面元素。
  • 参数:element(描述)、ref(元素引用)。
  • 示例:browser_click({element: "搜索按钮", ref: "#search-btn"})

5. browser_type

  • 功能:在输入框输入文本。
  • 参数:elementreftextsubmit
  • 示例:browser_type({element: "用户名输入框", ref: "#username", text: "test@example.com", submit: false})

6. browser_hover

  • 功能:鼠标悬停。
  • 示例:browser_hover({element: "用户头像"})

7. browser_drag

  • 功能:拖拽元素。
  • 示例:browser_drag({source_ref: "#item", target_ref: "#cart"})

8. browser_select_option

  • 功能:选择下拉框。
  • 示例:browser_select_option({element: "城市选择", ref: "#city", label: "北京"})

三、导航与标签页管理

9. browser_navigate

  • 功能:跳转页面。
  • 示例:browser_navigate({url: "https://baidu.com", wait_until: "networkidle"})

10. browser_navigate_back / browser_navigate_forward

  • 功能:浏览器返回/前进。

  • 示例:

    • browser_navigate_back()
    • browser_navigate_forward()

11. browser_tab_new / browser_tab_select / browser_tab_close

  • 功能:标签页管理。

  • 示例:

    • browser_tab_new({url: "https://github.com"})
    • browser_tab_select({index: 1})
    • browser_tab_close({index: 1})

12. browser_tab_list

  • 功能:列出所有标签页。
  • 示例:browser_tab_list()

四、数据提取与文件操作

13. browser_snapshot

  • 功能:结构化快照,用于元素定位。
  • 示例:browser_snapshot()

14. browser_take_screenshot

  • 功能:页面截图。
  • 示例:browser_take_screenshot({path: "result.png", full_page: true})

15. browser_pdf_save

  • 功能:保存页面为 PDF。
  • 示例:browser_pdf_save({path: "invoice.pdf", format: "A4"})

16. browser_file_upload

  • 功能:文件上传。
  • 示例:browser_file_upload({element_ref: "#upload-btn", file_paths: ["./resume.pdf"]})

五、调试与高级控制

17. browser_console_messages

  • 功能:获取控制台日志。
  • 示例:browser_console_messages()

18. browser_handle_dialog

  • 功能:处理弹窗。
  • 示例:browser_handle_dialog({action: "accept", text: "同意"})

19. browser_network_requests

  • 功能:查看网络请求。
  • 示例:browser_network_requests({filter: "login"})

20. browser_press_key

  • 功能:模拟键盘操作。

  • 示例:

    • browser_press_key({key: "Enter"})
    • browser_press_key({key: "Control+A"})

21. browser_wait_for

  • 功能:等待条件满足。

  • 示例:

    • browser_wait_for({condition: "element", element_ref: "#loading"})
    • browser_wait_for({condition: "timeout", timeout: 2000})

22. browser_generate_playwright_test

  • 功能:生成自动化测试脚本。
  • 示例:browser_generate_playwright_test()

安装与配置教程

地址:https://github.com/microsoft/playwright

进入cursor的mcp配置文件加入如下代码即可

"playwright": {
  "command": "npx",
  "args": ["-y", "@playwright/mcp@latest"]
}

picture.image

实战测试

实现截图自己网站

picture.image

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
火山引擎大规模机器学习平台架构设计与应用实践
围绕数据加速、模型分布式训练框架建设、大规模异构集群调度、模型开发过程标准化等AI工程化实践,全面分享如何以开发者的极致体验为核心,进行机器学习平台的设计与实现。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论