掘金 人工智能 11小时前
【AI助手】释放双手,基于Cursor Agent与Playwright MCP的浏览器自动化实战
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了如何利用Playwright MCP和Cursor AI Agent,通过自然语言指令实现浏览器自动化,从而简化开发流程,提高效率。文章详细阐述了MCP的概念和核心功能,并提供了多个实战案例,展示了如何通过简单的prompt实现网页登录、文件上传、数据抓取等任务,降低了技术门槛,为自动化领域带来了新的可能性。

🖥️ **MCP的定义与作用**:MCP(Model Context Protocol)是一个开放协议,它为AI模型提供了与外部工具和服务安全交互的标准化接口,可以将其视为AI应用程序的“USB-C接口”,方便AI模型访问实时数据和执行复杂操作。

🛠️ **Playwright MCP的核心功能**:Playwright MCP允许LLM在真实的浏览器环境中与网页交互,包括执行JavaScript、截图、浏览网页元素等任务。它支持多种浏览器引擎,并提供了丰富的API,涵盖页面导航、元素交互、HTTP请求等,方便进行自动化测试。

⚙️ **Cursor Agent接入MCP的步骤**:文章详细介绍了在Cursor中配置MCP的步骤,包括添加MCP服务器的配置信息,使得Cursor Agent能够调用Playwright MCP提供的API,从而实现通过自然语言指令控制浏览器操作。

💡 **实战案例演示**:文章提供了多个实战案例,如GitHub登录、文件上传、数据抓取和iframe交互等,展示了如何通过自然语言提示词驱动AI Agent结合Playwright MCP完成各种Web自动化任务,体现了其易用性和灵活性。

一、前言

在日常的开发与流程化工作中,浏览器网页是常用交互界面。然而,面对人为重复性操作,传统的自动化脚本通常存在灵活性差非语义化维护成本高等问题。设想一下这样的场景:你只需向 AI 发送一条 prompt 描述任务,它便能自动打开网页、点击按钮、填充表单,甚至帮你抓取页面数据到本地进一步分析。本文主要介绍如何运用 Cursor AgentPlaywright MCP,轻松实现浏览器自动化,将人从繁琐的重复劳动中解放出来。对于AI,还是那句话,发挥你的想象。

可以先看一下效果:

二、Playwright MCP

2.1 什么是MCP

MCP(Model Context Protocol) 是一个开放协议,允许 AI 模型与外部工具和服务进行安全的交互。它为 AI 应用提供了标准化的接口,使得模型能够访问实时数据、执行复杂操作。你可以将 MCP 想象成 AI 应用程序的 USB-C 接口。就像 USB-C 为设备连接各种外设和配件提供了标准化的方式一样,MCP 为 AI 模型 连接各种数据源和工具提供了标准化的接口。

2.2 Playwright MCP 简介

官方文档地址Github地址

Playwright 模型上下文协议(MCP) 服务器是使用 Playwright 自动进行浏览器和 API 测试的强大解决方案。

2.3 核心功能

2.4 核心API(32个)

会话管理(4个)

名称用途
start_codegen_session启动代码生成会话,开始记录浏览器操作
end_codegen_session结束代码生成会话并生成测试
get_codegen_session获取代码生成对话
clear_codegen_session清除代码生成会话而不生成测试

页面导航与基础操作(6个)

名称用途
playwright_navigate导航到指定URL页面
playwright_screenshot截取页面或元素截图
playwright_go_back浏览器后退操作
playwright_go_forward浏览器前进操作
playwright_close关闭当前页面或浏览器
playwright_save_as_pdf将页面保存为PDF文件

元素交互操作(7个)

名称用途
playwright_click点击页面元素(按钮、链接等)
playwright_fill填写输入框、文本域等表单字段
playwright_select选择下拉菜单选项
playwright_hover鼠标悬停在元素上触发效果
playwright_drag拖拽元素到目标位置
playwright_keyboard模拟键盘输入和快捷键操作
playwright_upload_file上传文件到页面表单

iframe操作(2个)

名称用途
playwright_iframe_click在iframe内点击元素
playwright_iframe_fill在iframe内填写表单字段

高级页面交互(5个)

名称用途
playwright_evaluate在页面中执行JavaScript代码
playwright_console_logs获取浏览器控制台日志信息
playwright_get_visible_text获取页面可见文本内容
playwright_get_visible_html获取页面可见HTML内容
playwright_click_and_switch_tab点击链接并切换到新标签页

HTTP请求操作(5个)

名称用途
playwright_get发送HTTP GET请求获取数据
playwright_post发送HTTP POST请求提交数据
playwright_put发送HTTP PUT请求更新资源
playwright_patch发送HTTP PATCH请求部分更新
playwright_delete发送HTTP DELETE请求删除资源

响应验证(2个)

名称用途
playwright_expect_response期望特定的HTTP响应内容
playwright_assert_response断言HTTP响应是否符合预期

浏览器配置(1个)

名称用途
playwright_custom_user_agent设置自定义用户代理字符串

三、Cursor接入MCP

3.1 前置条件

    Node.js ≥18.x,推荐使用nvm工具快速安装新版本已安装Cursor

Tips: mcp-playwright-server 首次运行时会自动下载浏览器内核,这个过程可能需要一些时间

3.2 具体步骤

1. 找到配置入口

2. 添加mcp

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

3. 添加成功

四、实战

本章节将通过一系列实战案例,展示如何仅仅使用 自然语言提示词(Prompt),驱动 AI Agent(如Cursor内置的Agent)结合 Playwright MCP 完成各种 Web 自动化任务。核心是 “描述做什么”,而不是 “编写怎么做”。

以下实战案例均采用公开网站,方便读者亲自体验,无需本地部署。请注意,AI Agent 调用何种 MCP API 取决于其自身的判断,不同模型的结果可能有所差异。

4.1 实战1:表单登录与验证 (GitHub)

安全提示:切勿在 Prompt 或代码中硬编码密码等敏感信息,此处仅为演示目的。

请使用Playwright帮我执行GitHub的登录流程:

    打开网址 'github.com/login'。在名为 'Username or email address' 表单项的输入框里填入你的用户名。在名为 'Password' 表单项的输入框里填入你的密码。点击名为 'Sign in' 的登录按钮。登录成功后,请验证页面左上角是否出现了 'Dashboard' 文字,有则登录成功。

4.2 实战2:文件上传 (tinypng.com)

请使用Playwright帮我测试 tinypng.com 的图片压缩上传功能:

    打开网址 'tinypng.com/'。找到页面上那个虚线框的文件上传区域,并用它来上传一个本地图片文件(例如 'D:\test.png')。上传后,网站会进行压缩处理,请等待这个处理流程完成(可以验证页面上是否出现了包含 'Download all images' 文本的按钮来确认)。最终,请验证页面上确实出现了 ‘Download all images’ 按钮,表示上传和处理均已成功。

4.3 实战3:列表数据抓取与保存 (微博热搜)

请使用Playwright帮我抓取微博热搜榜的数据:

    访问微博热搜榜页面 's.weibo.com/top/summary…找到热搜列表区域。提取列表中每个热搜话题的标题和对应的链接。将所有提取到的"标题,链接"组合,保存到一个名为 'weibo_hot_search.csv' 的CSV文件中,并确保使用 UTF-8 编码格式保存到项目根目录 'downloads' 文件夹下。

4.4 实战4:与iframe内的元素交互 (菜鸟教程)

请使用Playwright帮我操作一个内联框架(iframe):

    访问页面'www.runoob.com/try/try.php…查找页面上的iframe标签找到对应的iframe元素。切换到该iframe内部,并找到其中的'CSS3'按钮。请点击iframe中的'CSS3'按钮。

4.5 实战5:处理动态加载内容 (知乎"发现"页)

请使用Playwright帮我处理知乎 “小时榜" 页的无限滚动加载:

    访问 'www.zhihu.com/knowledge-p…首先,记下当前页面上显示了多少个文章标题。然后,模拟用户滚动页面到底部。等待新的内容加载出来。再次统计页面上文章标题的数量,并验证数量比之前要多,证明有新内容被加载。

五、总结

本文深入探讨了如何利用 Playwright MCPCursor AI Agent 相结合,通过自然语言指令实现浏览器自动化任务。

通过一系列简单易操作的实战案例,可以看出这种利用 Prompt 自然语言驱动的方式,极大地降低了技术门槛。开发者无需关注脚本实现细节,只需要以自然语言描述 “做什么” ,AI 便能智能地转换为 “怎么做” 的具体浏览器操作。甚至于完全不懂技术实现,也可以实现一些浏览器自动化操作。

总之,MCPAI Agent 的结合预示着一些新的可能性,为自动化领域带来了新的视角和方法。希望本文能为你的日常开发工作带来启发。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Playwright MCP Cursor Agent 浏览器自动化 AI Agent 自然语言
相关文章