Healenium MCP服务器
基于Spring Boot的模型上下文协议(MCP)服务器,使用Healenium的自愈Selenium框架提供web自动化功能。
概述
该项目将Healenium与MCP集成,为AI代理提供强大的web自动化功能。Healenium为Selenium WebDriver添加了自我修复功能,在web元素发生变化时自动修复损坏的定位器。
特性
- 自愈网络自动化:使用Healenium自动适应UI更改
- MCP集成:通过模型上下文协议公开web自动化工具
- Spring Boot架构:基于Spring Boot 3.5.7构建,支持Spring AI MCP
- WebDriver支持:使用Selenium WebDriver接口进行web自动化
可用工具
startBrowser
- 描述:启动新的浏览器会话
- 参数:
- browser (字符串):浏览器类型-“chrome”、“edge”、“firefox”(如果无效,默认为chrome)
- 用法:使用Healenium自愈功能初始化新的WebDriver浏览器实例
navigateTo
- 描述:导航到特定URL
- 参数:
- url (字符串):要导航到的URL
- 用法:在当前浏览器会话中打开指定的URL
findElement
- 描述:使用各种定位器策略查找单个web元素
- 参数:
- type (字符串):定位器类型-“id”、“类名”、“标记名”、“名称”、“链接文本”、“部分链接文本”,“css选择器”、“xpath” - value (String):定位器值
- 用法:查找并验证web元素的存在,如果成功,则返回“element Found”
findElements
- 描述:使用各种定位器策略查找多个web元素
- 参数:
- type (字符串):定位器类型-“id”、“类名”、“标记名”、“名称”、“链接文本”、“部分链接文本”,“css选择器”、“xpath” - value (String):定位器值
- 用法:查找符合条件的多个元素,如果成功,则返回“找到所有元素”
clickElement
- 描述:单击单个web元素
- 参数:
- type (字符串):定位器类型-“id”、“类名”、“标记名”、“名称”、“链接文本”、“部分链接文本”,“css选择器”、“xpath” - value (String):定位器值
- 用法:等待元素可点击并执行点击操作,如果成功,则返回“元素已点击”
clickElements
- 描述:点击多个网页元素
- 参数:
- type (字符串):定位器类型-“id”、“类名”、“标记名”、“名称”、“链接文本”、“部分链接文本”,“css选择器”、“xpath” - value (String):定位器值
- 用法:查找所有匹配的元素并单击每个元素,如果成功,则返回“已单击的所有元素”
hoverOverElement
- 描述:将鼠标指针悬停在单个web元素上
- 参数:
- type (字符串):定位器类型-“id”、“类名”、“标记名”、“名称”、“链接文本”、“部分链接文本”,“css选择器”、“xpath” - value (String):定位器值
- 用法:将鼠标光标移动到指定元素,可用于触发悬停效果和下拉菜单,如果成功,则返回“已成功悬停”
hoverOverAll
- 描述:将鼠标指针按顺序悬停在多个web元素上
- 参数:
- type (字符串):定位器类型-“id”、“类名”、“标记名”、“名称”、“链接文本”、“部分链接文本”,“css选择器”、“xpath” - value (String):定位器值
- 用法:按顺序将鼠标光标移动到所有匹配的元素上,如果成功,则返回“已成功悬停在所有元素上”
sendKeysToElement
- 描述:将键盘输入(文本)发送到web元素
- 参数:
- type (字符串):定位器类型-“id”、“类名”、“标记名”、“名称”、“链接文本”、“部分链接文本”,“css选择器”、“xpath” - value (String):定位器值 - keys (String):要发送到元素的文本/键
- 用法:定位输入元素并向其发送指定的文本,通常用于填写表单和文本字段,如果成功,则返回“密钥发送成功”
closeBrowser
- 描述:关闭所有浏览器会话
- 参数:无
- 用法:终止当前浏览器会话并清理资源
先决条件
- Java 21或更高版本
- Maven 3.6+
- 网络浏览器(Chrome、Firefox等)
- WebDriver(由Selenium自动管理)
- Healenium Web服务器:必须在端口8000上本地运行
Healenium Web服务器设置
重要:此MCP服务器要求Healenium web应用程序在端口8000上本地运行,以实现适当的自愈功能。
要设置Healenium web服务器,请执行以下操作:
- 使用Shell脚本(必需):
# Execute the Healenium startup script
# This script handles Docker container setup and service initialization
sh start_healenium.sh- 验证设置:
- 打开 http://localhost:8000 在浏览器中 - 您应该看到Healenium仪表板 - 该脚本应在端口8000上启动Healenium web服务器 - 检查仪表板是否显示“服务状态:正在运行”
备注:确保 start_healenium.sh 脚本是可执行的,在您的系统路径或当前目录中可用。
备注:如果没有Healenium web服务器运行,自愈功能将无法运行,MCP服务器在浏览器自动化任务中可能会遇到错误。
安装
- 克隆存储库:
git clone
cd healenium_mcp_server- 安装依赖项:
./mvnw clean install配置
应用程序属性
服务器可以通过以下方式配置 src/main/resources/application.properties.
硒的性质
Healenium的具体配置如下 src/main/resources/healenium.properties.
运行服务器
发展模式
mvn spring-boot:run生产建设
mvn clean package
java -jar target/healenium_mcp_server-0.0.1-SNAPSHOT.jar使用AI代理
此MCP服务器可以与支持模型上下文协议的AI代理集成。服务器公开了代理可以用来执行以下操作的web自动化工具:
- 启动和管理浏览器会话
- 导航到网页
- 使用自愈功能执行web交互
依赖项
核心依赖关系
- 弹簧靴3.5.7:应用程序框架
- 春季AI 1.0.3:MCP服务器支持
- Healenium Web 3.5.7:自愈硒包装
- 硒:Web自动化框架
Healenium整合的主要特征
- 自动定位修复:当元素发生变化时,Healenium会找到其他定位器
- 机器学习:使用ML算法建议最佳治疗策略
- 报告:提供关于治疗行动的详细报告
- 向后兼容:适用于现有的Selenium测试
建筑
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────────┐
│ AI Agent │◄──►│ MCP Server │◄──►│ HealeniumToolService│
│ (External) │ │ (Spring Boot) │ │ (@Tool methods) │
└─────────────────┘ └──────────────────┘ └─────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ SelfHealingDriver │
│ (Selenium + Healing Logic) │
└─────────────────────────────────────────────┘
│ │
▼ ▼
┌─────────────────────┐ ┌─────────────────┐
│ Healenium Web Server│ │ Web Browser │
│ (Port 8000) │ │ Chrome/Edge/FF │
└─────────────────────┘ └─────────────────┘发展
项目结构
src/
├── main/
│ ├── java/
│ │ └── com/healenium_mcp/healenium_mcp_server/
│ │ ├── HealeniumMcpServerApplication.java # Main application
│ │ └── HealeniumToolService.java # MCP tools
│ └── resources/
│ ├── application.properties # App config
│ └── healenium.properties # Healenium config
└── test/
└── java/
└── com/healenium_mcp/healenium_mcp_server/
└── HealeniumMcpServerApplicationTests.java添加新工具
要添加新的web自动化工具,请执行以下操作:
- 添加一个方法
HealeniumToolService.java - 用注释
@Tool(description = "...") - 该方法将自动作为MCP工具公开
例子:
@Tool(description = "Send text to a web element")
public String sendText(String type, String value, String text) {
try {
WebElement element = locateElement(type, value);
element.clear();
element.sendKeys(text);
return "Text sent to element";
} catch (Exception e) {
throw new RuntimeException("Failed to send text: " + e.getMessage());
}
}测试
使用以下工具运行测试:
mvn test故障排除
常见问题
- 未找到WebDriver
- 确保安装了兼容的web浏览器 - WebDriver由Selenium自动管理 - 对于Chrome:确保Chrome浏览器已安装且为最新版本
- 端口已在使用中
- 检查端口8080(MCP服务器)上是否正在运行另一个实例 - 检查Healenium web服务器是否在端口8000上运行 - 在中配置其他端口 application.properties
- Healenium愈合不起作用
- 验证Healenium web服务器是否正在运行: http://localhost:8000 - 检查 healenium.properties 配置 - 确保使用正确的元件定位器 - 查看Healenium仪表板中的治疗日志
- NoSuchElementException错误
- 验证元素定位器是否正确(id、类名、xpath等) - 交互前检查元素是否已加载 - 确保WebDriver等待超时(20秒)足够
- 浏览器启动失败
- 验证浏览器参数是否正确(“chrome”、“edge”、“firefox”) - 确保浏览器驱动程序与已安装的浏览器版本兼容 - 检查浏览器可执行文件的系统PATH
- MCP连接问题
- 验证Spring Boot应用程序是否在预期端口上运行 - 检查应用程序日志中的启动错误 - 确保Java 21已正确安装和配置
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
\[在此处添加您的许可证信息\]
支持
关于以下问题:
- 硒:参观 Healenium文件
- 春季AI MCP:检查 Spring AI文档
- 这个项目:在此存储库中创建问题
版本历史记录
- 0.0.1快照:带有基本浏览器自动化工具的初始版本
