使用说明
Selenium MCP 服务器
这是一个服务器实现,它填补了MCP客户端(AI助手)与Selenium WebDriver之间的鸿沟。它将Selenium WebDriver的功能作为MCP工具暴露出来,使AI模型能够利用这些功能执行任务,例如:
- 浏览器管理(启动、导航、关闭浏览器)
- 元素交互(点击、输入、查找元素)
- 网页抓取和自动化测试
- 高级操作,如截图、cookie管理以及JavaScript执行
本质上,Selenium WebDriver MCP(模型上下文协议控制器)设置允许AI助手通过与专用的Selenium MCP服务器进行模型上下文协议通信,从而利用Selenium WebDriver的强大功能进行网页自动化。这有助于实现由AI控制的自动化网页交互、测试和数据提取等任务。
🚀 概述
一个模型上下文协议(MCP)服务器用于 Selenium(硒) 这为AI助手和应用程序提供了全面的Selenium WebDriver自动化工具。该服务器通过标准化接口实现网页浏览器的自动化交互、测试和数据抓取。
该工具采用TypeScript和现代ES模块构建,通过模型上下文协议提供类型安全的浏览器自动化功能。
✨ 主要特点
- 多浏览器支持Chrome、Firefox、Safari 和 Edge 浏览器自动化
- 综合元素交互点击、输入、悬停、拖放、文件上传
- 高级导航前进、后退、刷新、窗口管理
- 等待策略智能等待元素和页面状态
- 类型安全使用Zod进行验证的完整TypeScript实现
🤝 集成
MCP客户端集成
配置您的MCP客户端以连接到Selenium服务器:
标准配置(适用于风帆冲浪板、Warp、Gemini CLI等)
{
"servers": {
"selenium-mcp": {
"command": "npx",
"args": ["-y", "selenium-webdriver-mcp@latest"]
}
}
}
在VS Code中安装
更新你的 mcp.json 在 VS Code(Visual Studio Code) 以下是配置
注如果你是MCP服务器的新手,请点击此链接 在VS Code中使用MCP服务器
示例:“stdio”类型连接
{
"servers": {
"selenium-mcp": {
"command": "npx",
"args": [
"-y",
"selenium-webdriver-mcp@latest"
],
"type": "stdio"
}
},
"inputs": []
}
示例:“http”类型连接
{
"servers": {
"Selenium": {
"url": "https://smithery.ai/server/@pshivapr/selenium-mcp",
"type": "http"
}
},
"inputs": []
}
安装完成后,Selenium MCP 服务器将可在 VS Code 中与您的 GitHub Copilot 代理一起使用。
使用 VS Code CLI 安装 Selenium MCP 服务器
# For VS Code
code --add-mcp '{\"name\":\"selenium-mcp\",\"command\": \"npx\",\"args\": [\"selenium-webdriver-mcp@latest\"]}'
# For VS Code Insiders
vscode-insiders --add-mcp '{\"name\":\"selenium-mcp\",\"command\": \"npx\",\"args\": [\"selenium-webdriver-mcp@latest\"]}'
使用 npm 或 Smithery 安装该包
使用npm:
npm install -g selenium-webdriver-mcp@latest
使用 Smithery(注:此词并非常见英文词汇,可能为特定语境或虚构词汇,直译为“史密斯里”或根据上下文可能有其他含义,但在此提供一个直译版本)
通过(某种方式)自动为Claude Desktop安装Selenium MCP
npx @smithery/cli install @pshivapr/selenium-mcp --client claude
Claude 桌面集成
在您的Claude桌面配置中添加:
{
"mcpServers": {
"selenium-mcp": {
"command": "npx",
"args": ["-y", "selenium-webdriver-mcp@latest"]
}
}
}
截图
提示
启动AI代理交互的一个示例提示:
Using selenium mcp tools, navigate to <https://parabank.parasoft.com/> click the 'Register' link and signup using dynamic test data and click register. Then generate selenium tests in <YOUR_FAVOURITE_PROGRAMMING_LANGUAGE> using pom, create tests using cucumber features, steps and execute the tests.
注如需更多提示,请查看项目中的示例目录
🛠️ MCP 可用工具
浏览器管理工具
| 工具 | 描述 | 参数 |
|---|---|---|
browser_open |
打开一个新的浏览器会话 | browser, options |
browser_navigate |
导航到URL | url |
browser_navigate_back |
在历史中返回 | 无 |
browser_navigate_forward |
在历史记录中前进 | 无 |
browser_title |
获取当前页面标题 | 无 |
browser_refresh |
刷新当前页面 | 无 |
browser_get_url |
获取当前页面URL | 无 |
browser_get_page_source |
获取当前页面的HTML源代码 | 无 |
browser_maximize |
最大化浏览器窗口 | 无 |
browser_resize 调整浏览器窗口大小 width, height |
||
browser_close |
关闭当前浏览器会话 | 无 |
Cookie管理工具
| 工具 | 描述 | 参数 |
|---|---|---|
browser_get_cookies |
从当前浏览器会话中获取所有cookie | 无 |
browser_get_cookie_by_name |
通过名称获取特定的cookie | cookie (饼干名称) |
browser_add_cookie_by_name |
在浏览器中添加一个新的cookie | cookie (饼干名称), value |
browser_set_cookie_object |
在浏览器中设置一个cookie对象 | cookie (cookie 对象作为字符串) |
browser_delete_cookie |
按名称删除特定的cookie | value (要删除的cookie名称) |
browser_delete_cookies |
从当前浏览器会话中删除所有cookie | 无 |
窗口管理工具
| 工具 | 描述 | 参数 |
|---|---|---|
| (无) | (无) | (无) |
browser_switch_to_original_window |
||
| 切换回原始浏览器窗口 | 无 | browser_switch_to_window_by_title |
browser_switch_window_by_index |
index |
按索引位置切换到窗口 |
browser_switch_to_window_by_url |
url |
通过URL切换到窗口 |
|
元素交互工具
| 工具 | 描述 | 参数 |
|------|-------------|------------| browser_find_element | by| 在页面上查找元素 | value, timeout ,
| browser_find_elements | by| 在页面上查找多个元素 | value, timeout ,
| browser_click | by| 点击一个元素 | value, timeout ,
| browser_type | by在元素中输入文本 value, text, timeout ,
| browser_get_element_text | by| 获取元素的文本内容 | value, timeout ,
| browser_file_upload | by| 通过输入元素上传文件 | value, filePath, timeout ,
| browser_clear | by| 从元素中清除文本 | value, timeout ,
| browser_get_attribute | by| 获取元素属性值 | value, attribute, timeout ,
|
元素状态验证工具
| 工具 | 描述 | 参数 |
|------|-------------|------------| browser_element_is_displayed | by| 检查页面上某个元素是否可见 | value, timeout ,
| browser_element_is_enabled | by| 检查元素是否启用以进行交互 | value, timeout ,
| browser_element_is_selected | by| 检查某个元素是否被选中(复选框、单选按钮) | value, timeout ,
|
帧管理工具
| 工具 | 描述 | 参数 |
|------|-------------|------------| browser_switch_to_frame | by| 切换到 iframe 元素 | value, timeout ,
| browser_switch_to_parent_frame |
| 切换到父框架(从嵌套的iframe中) | 无 | browser_switch_to_default_content |
| 切换回主页内容 | 无 |
高级行动工具
| 工具 | 描述 | 参数 |
|------|-------------|------------| browser_hover | by| 将鼠标悬停在元素上 | value, timeout ,
| browser_double_click | by| 双击元素 | value, timeout ,
| browser_right_click | by| 右键点击(上下文菜单) | value, timeout ,
| browser_drag_and_drop | by| 从源拖动到目标 | value, targetBy, targetValue, timeout ,
| browser_wait_for_element | by等待元素出现 value, timeout ,
| browser_execute_script | script| 执行JavaScript代码 | args ,
| browser_screenshot | filename | 截图 |
(可选)| browser_select_dropdown_by_text | by| 通过可见文本选择下拉选项 | value, text, timeout ,
| browser_select_dropdown_by_value | by| 通过值选择下拉选项 | value, dropdownValue, timeout ,
| browser_key_press | key| 在浏览器中按下键盘键 | timeout ,
|
滚动工具
| 工具 | 描述 | 参数 |
|------|-------------|------------| browser_scroll_to_element | by| 滚动以将元素带入视图 | value, timeout ,
| browser_scroll_to_top |
| 滚动到页面顶部 | 无 | browser_scroll_to_bottom |
| 滚动到页面底部 | 无 | browser_scroll_to_coordinates | x| 滚动到特定坐标 | y ,
| browser_scroll_by_pixels | x| 按指定像素数滚动 | y ,
|
表单交互工具
| 工具 | 描述 | 参数 |
|------|-------------|------------| browser_select_checkbox | by| 选择/勾选复选框 | value, timeout ,
| browser_unselect_checkbox | by| 取消选中/取消勾选复选框 | value, timeout ,
| browser_submit_form | by| 提交表单元素 | value, timeout ,
| browser_focus_element | by| 聚焦于特定元素 | value, timeout ,
| browser_blur_element | by| 从特定元素中移除焦点 | value, timeout ,
|
- **
id**元素定位策略 - **
css**通过元素ID查找 - **
xpath**通过CSS选择器查找 - **
name**通过XPath表达式查找 - **
tag**按名称属性查找 - **
class**通过HTML标签名查找
通过CSS类名查找
- 📋 要求Node.js
- 版本18.0.0或更高版本浏览器
- 已安装Chrome、Firefox、Safari或Edge浏览器WebDrivers(网络驱动程序)
- 由Selenium-WebDriver自动管理操作系统
Windows、macOS 或 Linux
🚦 开发
入门指南/开始使用
git clone https://github.com/pshivapr/selenium-mcp.git
cd selenium-mcp
克隆仓库
npm install
安装依赖项
npm run build
构建项目
运行服务器
npm start
生产模式
npm run dev
开发模式(带自动重载)
node dist/index.js
直接执行
作为命令行界面(CLI)工具使用
npx selenium-webdriver-mcp@latest
构建完成后,您可以将服务器作为全局命令使用:
📝 许可证
MIT 许可证 - 详情请参见 LICENSE 文件。
🤝 贡献
- 欢迎贡献!请随时提交拉取请求。
- 为仓库创建分支(或“克隆仓库”)
git checkout -b feature/AmazingFeature创建你的功能分支( - )
git commit -m 'Add some AmazingFeature'提交您的更改( - )
git push origin feature/AmazingFeature推送至分支( - )