使用说明

项目简介

MCP POM生成器服务器是一个实验性的工具,旨在通过扫描网站,自动生成优化的Playwright Page Object Model (POM) 文件。它可以帮助开发者快速创建和维护UI自动化测试所需的POM,并提供可视化界面来验证生成的POM的准确性。虽然项目名称包含“MCP”,但其核心功能是服务于UI自动化测试,而非通用LLM上下文服务,此处MCP可理解为 Maintenance and Creation tool for POMs。

主要功能点

  • 自动化POM生成: 扫描公共和需要身份验证的网站页面,自动生成TypeScript格式的Playwright POM类。
  • 智能元素定位: 优先使用 'data-testid'、角色 (role)、标签 (label)、占位符 (placeholder) 等可访问性属性来定位元素。
  • 可视化验证: 通过交互式可视化界面,对比生成的POM与实际页面,高亮显示已映射、缺失或损坏的元素定位器,方便调试和验证。
  • 支持认证站点: 可以处理需要登录才能访问的网站,通过Playwright Global Setup集成来管理会话。
  • 多页面抓取: 支持爬取整个网站,并为每个页面生成POM文件。

安装步骤

  1. 克隆仓库到本地:
    git clone https://github.com/juantor16/mcp-pom-generator.git
  2. 进入项目目录:
    cd mcp-pom-generator
  3. 安装项目依赖:
    npm install

服务器配置

对于MCP客户端,你需要配置以下信息以启动并连接到MCP POM生成器服务器。请注意,此服务器主要通过HTTP API提供服务,而非严格的JSON-RPC协议。以下是客户端配置示例 (JSON 格式):

{
  "serverName": "mcp-pom-generator-server",
  "command": "npx",
  "args": [
    "ts-node",
    "src/mcpServer.ts"
  ],
  "description": "MCP POM生成器服务器,用于自动化生成Playwright POM文件",
  "baseUrl": "http://localhost:3001"
}
  • serverName: 服务器名称,可以自定义。
  • command: 启动服务器的命令,这里使用 'npx' 来运行 'ts-node'。
  • args: 传递给 'command' 的参数,用于执行 'src/mcpServer.ts' 文件。
  • description: 服务器描述,可以自定义。
  • baseUrl: 服务器的基础URL,默认为 'http://localhost:3001'。

基本使用方法

  1. 启动服务器: 在项目根目录下,运行以下命令启动 MCP POM生成器服务器:

    npx ts-node src/mcpServer.ts

    服务器默认监听 'http://localhost:3001' 端口。

  2. 分析单页面生成POM: 使用POST请求访问 '/analyze' 接口,并传递要分析的URL。例如,使用 'curl':

    curl -X POST -H "Content-Type: application/json" -d '{"url": "https://your-site.com/public-page"}' http://localhost:3001/analyze

    生成的POM文件将保存在 'src/output/' 目录下,文件名为根据URL slugify后的名称,例如 'your-site-com-public-page.ts'。

  3. 爬取多页面生成POM: 使用POST请求访问 '/crawl' 接口,并传递起始URL。例如:

    curl -X POST -H "Content-Type: application/json" -d '{"url": "https://your-site.com"}' http://localhost:3001/crawl

    服务器将从起始URL开始爬取网站,并为每个访问的页面生成POM文件,同样保存在 'src/output/' 目录下。

  4. 可视化对比POM: 使用 'compare.ts' 脚本来可视化验证生成的POM文件与实际页面的匹配情况。例如:

    npx ts-node src/compare.ts --url=https://your-site.com/public --pom=src/output/public.ts

    这将打开浏览器,并在页面上高亮显示POM中定义的元素,以及页面上未被POM覆盖的元素,帮助你检查POM的完整性和准确性。

请注意,此服务器主要用于辅助生成Playwright POM文件,其“MCP”概念与通用LLM上下文服务有所不同。

信息

分类

开发者工具