Token导航 LogoToken导航TokenDH.com
Selenium MCP Framework logo
运维云端未说明官方级别未说明来源级核验

Selenium MCP Framework

MCP Server

结合Selenium、MCP和Cucumber BDD的自愈式测试自动化框架,具有智能定位器管理和AI辅助测试生成功能。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
测试自动化JavaClaudeClaudeCline

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

rakesh-arrepu

提供方

rakesh-arrepu

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Selenium MCP Java测试框架

具有自愈功能的AI驱动测试自动化

一个结合了以下功能的测试自动化框架 , MCP(模型上下文协议),以及 黄瓜BDD 提供自愈定位器管理和人工智能辅助测试生成。Java通过stdio上的JSON-RPC 2.0与Node.js MCP Selenium服务器通信,提供自动定位器回退和从每次测试执行中学习。

______________________________________________________________________

主要特点

  • 自愈定位器:通过多种定位器策略自动回退,按成功率排序
  • 智能学习:跟踪每个定位器策略的成功/失败,并随着时间的推移优化选择
  • API成本为零:使用本地MCP Selenium服务器(@executeautomation/mcp-selenium)-不需要云API密钥
  • 黄瓜BDD:带有标记执行的完整Gherkin场景支持
  • 综合指标:详细的每个元件修复报告,确定脆性和坚固的元件
  • 页面对象模型:干净的POM结构 BasePage 继承和元素名称常量
  • 人工智能辅助生成:与Claude Code、Cline和Amazon Q合作生成测试工件

______________________________________________________________________

建筑

Cucumber BDD (.feature files)
  -> Step Definitions (stepdefinitions/)
    -> Page Objects (pages/ extending BasePage)
      -> SelfHealingElement (healing/) -- retry/fallback chain
        -> LocatorRegistry (locators/) -- multi-strategy, JSON-persisted
          -> MCPSeleniumClient (mcp/) -- JSON-RPC 2.0 stdio bridge
            -> npx @executeautomation/mcp-selenium (Node.js process)
              -> Browser (Chrome, Firefox)

设计模式

模式实施
页面对象模型BasePage +具有元素常量的页面子类
责任链定位器回退链 SelfHealingElement
战略LocatorStrategy 按成功率动态选择的对象
注册表LocatorRegistry --内存+JSON持久性
装饰师SelfHealingElement 用修复功能包装所有浏览器操作

______________________________________________________________________

快速开始

先决条件

  • Java 21+
  • Maven 3.6+
  • Node.js 16+
  • npm

安装

  1. 克隆存储库:
   git clone 
   cd selenium-mcp-framework
  1. 安装MCP Selenium:
   npm install -g @executeautomation/mcp-selenium
  1. 构建项目:
   mvn clean install
  1. 运行测试:
   mvn test

______________________________________________________________________

项目结构

selenium-mcp-framework/
├── src/
│   ├── main/java/framework/
│   │   ├── mcp/
│   │   │   └── MCPSeleniumClient.java          # JSON-RPC 2.0 client for MCP server
│   │   ├── locators/
│   │   │   └── LocatorRegistry.java            # Element-to-strategies store, JSON persistence
│   │   ├── healing/
│   │   │   ├── SelfHealingElement.java         # Core healing algorithm with retry logic
│   │   │   └── HealingMetrics.java             # Per-element performance tracking and reports
│   │   └── pages/
│   │       ├── BasePage.java                   # POM base class (element(), navigateTo(), assertions)
│   │       ├── LoginPage.java                  # Login page (the-internet.herokuapp.com/login)
│   │       ├── CheckboxPage.java               # Checkboxes page (elements without IDs)
│   │       └── AddRemoveElementsPage.java      # Add/Remove Elements page (dynamic elements)
│   └── test/
│       ├── java/
│       │   ├── runners/
│       │   │   └── RunCucumberTest.java        # Cucumber JUnit runner
│       │   └── stepdefinitions/
│       │       ├── LoginSteps.java             # Login feature step definitions
│       │       ├── CheckboxSteps.java          # Checkbox feature step definitions
│       │       └── AddRemoveElementsSteps.java # Add/Remove feature step definitions
│       └── resources/
│           ├── features/
│           │   ├── login.feature               # Login scenarios (3 scenarios)
│           │   ├── checkbox.feature            # Checkbox scenarios (3 scenarios)
│           │   └── add_remove_elements.feature # Add/Remove scenarios (9 scenarios)
│           └── locators/
│               └── locators.json              # Locator configuration with success stats
├── pom.xml
├── CLAUDE.md
└── README.md

______________________________________________________________________

测试覆盖率

所有测试目标 互联网.herokuapp.com.有 15种情景 跨越3个特征文件:

登录(@login --3种情况)

  • 使用有效凭据成功登录
  • 登录失败,密码无效
  • 登录失败,用户不存在

复选框(@checkbox --3种情况)

  • 验证复选框页面显示正确的标题
  • 打开和关闭第一个复选框
  • 关闭和打开第二个复选框

添加/删除元素(@add_remove --9个场景)

  • 验证页面标题
  • 添加单个和多个元素
  • 删除元素并验证计数更改
  • 最初没有删除按钮
  • 添加、删除和添加更多元素
  • 逐一删除所有元素
  • 从剩余的中间班次中删除

______________________________________________________________________

运作原理

自愈元素发现

当您与元素交互时,框架:

  1. 检索所有已注册的定位器策略 对于该元素
  2. 按成功率对策略进行排序 (胜率越高;平局时,优先级越低的获胜)
  3. 尝试每种策略 最多重试3次,重试之间延迟500ms
  4. 记录成功/失败 持续学习策略的重要性
  5. 将统计数据保存到locators.json 在测试拆卸以备将来运行时

示例

// Traditional (brittle):
driver.findElement(By.id("login-btn")).click();

// Self-healing:
element("loginButton").click();

在幕后,该框架按照成功率顺序尝试策略:

  1. css=button.login-button (成功率95%)
  2. css=.radius (如果#1失败)
  3. xpath=//button[@type='submit'] (如果#2失败)
  4. css=.fa-sign-in (如果#3失败)

______________________________________________________________________

关键文件

文件目的
MCPSeleniumClient.java将Node.js MCP服务器作为子进程启动,通过stdin发送JSON-RPC请求,从stdout读取响应。30秒超时。
LocatorRegistry.java存储元素到策略的映射,跟踪成功/失败计数,加载/保存到JSON。
SelfHealingElement.java核心修复算法:按成功率尝试策略,每种策略重试3次,延迟500毫秒。
HealingMetrics.java聚合每个元素的统计数据,识别易碎(\ brittleElements = healingMetrics.getBrittleElements(80.0);

______________________________________________________________________

## 依赖项

|依赖关系|版本|目的|
| --- | --- | --- |
|Selenium WebDriver | 4.15.0|浏览器自动化|
|Cucumber(Java+JUnit)|7.14.0|BDD框架|
|Jackson(数据绑定+核心)|2.15.3|定位器和JSON-RPC的JSON处理|
|JUnit4|4.13.2|测试运行器|

______________________________________________________________________

## 其他资源

- [MCP硒](https://github.com/executeautomation/mcp-selenium) --此框架与MCP服务器通信
- [Cucumber文档](https://cucumber.io/docs/cucumber/) --BDD框架
- [Selenium文档](https://www.selenium.dev/documentation/) --浏览器自动化

______________________________________________________________________

## 贡献

1. 分叉存储库
1. 创建要素分支
1. 进行更改
1. 添加测试
1. 提交拉取请求

______________________________________________________________________

## 许可证

该项目根据MIT许可证获得许可。

目录标签

目录标签

测试自动化JavaClaude本地部署自愈定位器BDD测试AI辅助测试Java框架

支持客户端

ClaudeCline

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP