当前位置: 首页 > news >正文

【AI自动化】Claude Code + Playwright mcp + Python

以下以win11系统实操为例

第一步:环境准备与安装

请在 Windows PowerShell 或命令提示符(建议以管理员身份运行) 中按顺序执行以下命令。

1. 安装 Node.js 和 npm
这是运行 Playwright 和 MCP 的基础。

    • 下载:访问 Node.js 官网,下载 LTS 版本的安装程序(例如 v20.x)。

    • 安装:运行安装程序,全部默认选项即可,但务必勾选 “Add to PATH” 选项。

    • 验证安装:安装完成后,重新打开一个命令行窗口,输入以下命令验证:

node --version
npm --version

2. 安装 Playwright
创建一个专门的项目目录,并在其中进行安装。

# 1. 创建并进入项目目录(路径可自定义)
mkdir C:\Users\你的用户名\playwright-mcp-demo
cd C:\Users\你的用户名\playwright-mcp-demo# 2. 初始化项目并安装 Playwright
npm init -y
npm install playwright# 3. 安装Playwright所需的浏览器(Chromium, Firefox, WebKit)
npx playwright install

 3. 安装 MCP 服务器
我们将使用一个功能明确的测试服务器 @playwright/mcp

# 在刚才的 playwright-mcp-demo 目录下执行
npm install -g @playwright/mcp
npx @playwright/mcp@latest

4. Python环境安装Playwright库

Python版本要求 3.8+

pip install playwright

5. 安装浏览器驱动

playwright install

 验证安装

import asyncio
from playwright.async_api import async_playwright, Playwrightasync def run(playwright: Playwright):chromium = playwright.chromiumbrowser = await chromium.launch()page = await browser.new_page()await page.goto("https://www.baidu.com")print("页面标题:", await page.title())await browser.close()async def main():async with async_playwright() as playwright:await run(playwright)
asyncio.run(main())

 

第二步:获取Claude Code秘钥

国内Claude Code模型调用,可使用例如 引力AI ,充值后配置令牌及可用模型。

配置环境变量

变量名:ANTHROPIC_BASE_URL,变量值:大模型BASE_URL,例如 :https://yinli.one/v1/messages
变量名:ANTHROPIC_API_KEY,变量值:你的密钥

(Claude Code 安装指南)

第三步:Python脚本调用Claude Code大模型驱动Playwright mcp自动化

Demo

import asyncio
import os
from anthropic import Anthropic
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client# 配置信息 (请根据你的情况修改)
ANTHROPIC_API_KEY = os.getenv('ANTHROPIC_API_KEY')
BASE_URL = os.getenv('ANTHROPIC_BASE_URL')
PROJECT_ROOT = r"D:\xxx\xxx"  # 你的项目目录
MODEL = "claude-4-5-sonnet-20250228"async def main():print("🚀 开始执行 Claude + MCP 自动化测试...")# 正确的cmd调用:强制使用npx的绝对路径或Windows下完整npx命令,参数与MCP服务包名称正确# 示例:你需要将npx的实际路径/Node安装目录写全,推荐如下方式npx_path = r"D:\xxx\node-v24.13.0-win-x64\npx.cmd"  # 请修改为你的npx.cmd实际路径
server_params = StdioServerParameters(command="cmd.exe",args=["/c", npx_path, "-y", "@playwright/mcp"],  # 注意这里是@playwright/mcpcwd=PROJECT_ROOT,  # 设置正确的工作目录env={**os.environ,"CODE_PATH": PROJECT_ROOT,"BROWSER_HEADLESS": "false"  # 或其他你需要传递给MCP的环境变量
        })try:async with stdio_client(server_params) as (read, write):async with ClientSession(read, write) as session:print("✅ MCP服务器连接成功")# 2. 初始化会话并获取工具列表
                await session.initialize()tools_response = await session.list_tools()available_tools = tools_response.toolsprint(f"📋 获取到 {len(available_tools)} 个可用工具")# 3. 创建Anthropic客户端client = Anthropic(api_key=ANTHROPIC_API_KEY,base_url=BASE_URL)# 4. 工具列表结构传递给Claudetools_for_claude = [{"name": tool.name,"description": tool.description,"input_schema": tool.inputSchema} for tool in available_tools]# 5. 用户输入任务user_input = "请打开百度首页,并搜索'Playwright自动化'"print(f"🎯 执行任务: {user_input}")# 6. 第一次请求Clauderesponse = client.messages.create(model=MODEL,max_tokens=1000,messages=[{"role": "user", "content": user_input}],tools=tools_for_claude)# 7. 处理Claude的响应、执行工具调用message_history = [{"role": "user", "content": user_input},{"role": "assistant", "content": response.content}]while response.stop_reason == "tool_use":message_history = [{"role": "user", "content": user_input},{"role": "assistant", "content": response.content}]# 找到Claude要调用的工具tool_use = next(block for block in response.content if block.type == "tool_use")print(f"🔧 Claude调用工具: {tool_use.name}")print(f"   参数: {tool_use.input}")# 执行MCP工具调用result = await session.call_tool(tool_use.name, tool_use.input)print(f"   结果: {result.content if hasattr(result, 'content') else result}")# 把结果回给Clauderesponse = client.messages.create(model=MODEL,max_tokens=1000,messages=message_history + [{"role": "user","content": [{"type": "tool_result","tool_use_id": tool_use.id,"content": str(result.content) if hasattr(result, 'content') else str(result)}]}],tools=tools_for_claude)# 补充历史
                    message_history.append({"role": "user", "content": f"工具 {tool_use.name} 执行完成"})message_history.append({"role": "assistant", "content": response.content})# 8. 输出最终结果print("\n" + "="*50)print("🎉 任务完成!")final_text = "".join(block.text for block in response.content if block.type == "text")print(f"Claude的最终回复:\n{final_text}")except Exception as e:print(f"❌ 程序执行出错: {type(e).__name__}: {e}")import tracebacktraceback.print_exc()# 运行主函数
if __name__ == "__main__":asyncio.run(main())

 

http://www.jsqmd.com/news/370414/

相关文章:

  • 第十四天
  • 阅读笔记Day17
  • 外卖怎么点才不踩雷?美团外卖解锁省钱点餐新姿势! - Top品牌推荐
  • 2026!深圳旧房改造专业服务商权威推荐榜单 文小墙居首成优选! - 品牌评测官
  • 什么是反指纹浏览器?反指纹浏览器哪个好用?不了解的要看看! - Roxy指纹浏览器
  • 天猫享淘卡回收哪家好?2026年优胜平台列举 - 京回收小程序
  • js--18
  • 襄阳团购代运营首选:合肥三十六行(襄阳)分公司四大平台领跑 - 野榜数据排行
  • 使用Jumia API获取商品详情数据的技术实践
  • 苏州德力智仓:智慧仓储物流的技术引领者与价值共创伙伴 - 品牌策略主理人
  • 2026年受欢迎的直播排班软件排名,靠谱品牌推荐 - 工业设备
  • 西安石灰厂哪个品牌好,有哪些高性价比的值得推荐 - 工业设备
  • FPGA 项目为啥那么重要?
  • lazarus编写的程序在Ubuntu在任务栏或快捷栏不显示设定的图标
  • 2026年北京钢管公司排行榜,万泓泰钢管公司反馈怎么样 - 工业品网
  • 价格合理的有机肥生产线全套设备生产厂哪家值得选 - mypinpai
  • 天猫超市购物卡回收变现,京顺回收高效解决方案 - 京顺回收
  • 【好物推荐】告别重复输入!用 utools 超级文本片段打造跨应用的“实时模板”
  • 2026年北京旅行社选购指南,启程旅行社投诉处理情况如何要了解 - mypinpai
  • 分析黑龙江口碑好的中专学校,哈尔滨工大技工学校优势凸显 - 工业推荐榜
  • CH57x-CH59x低功耗同时外设保持修改示例
  • 风光储、风光储并网直流微电网simulink仿真模型。 各个系统功能明确,波形质量
  • 电池低电压时,TP4056充电电流过低导致设备不断重启
  • 为什么有些工厂越做越小?问题出在沟通上
  • 桂花网蓝牙网关在体育运动监测方案中的应用及案例介绍
  • 【黑客技术零基础入门】PHP基础语法(非常详细)零基础入门到精通,收藏这一篇就够了
  • Comsol 中手性介质的奇妙探索:本构关系修改与表面态探秘
  • 【网络安全入门基础教程】其实大部分网络安全岗都是先混进去再说!分享新人“混“进去生存指南
  • 2026年,银川酒吧装修推荐哪家装修公司? 专业酒吧装修,优选指南 - 宁夏壹山网络
  • GeotrustOV通配符SSL证书续费