关于 selenium-mcp
selenium-mcp 是将 Selenium WebDriver 自动化能力提供给 AI 助手和应用的 MCP 服务。它支持多种浏览器,并提供导航、元素交互、网页抓取和测试工具。
主要功能
- 01支持 Chrome、Firefox、Safari 和 Edge
- 02导航并管理浏览器窗口
- 03查找并操作页面元素
- 04管理 Cookie、框架和表单
- 05截图并执行 JavaScript
适用场景
- 01自动化浏览器测试
- 02抓取网页信息
- 03操作网页表单
- 04截取页面并检查浏览器状态
MCP 相关
该服务将 Selenium WebDriver 能力作为 MCP 工具提供给已连接的客户端,包括浏览器管理、页面交互、导航和截图。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
56收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| browser | enum | 是 | 要启动的浏览器chrome | firefox | edge | safari |
| options | object | 否 | |
| options.headless | boolean | 否 | 以无头模式运行浏览器 |
| options.arguments | array | 否 | 其他浏览器参数 |
详细介绍
Selenium MCP 服务
这是一个服务实现,用于弥合 MCP 客户端(AI 助手)与 Selenium WebDriver 之间的差距。它将 Selenium WebDriver 的功能以 MCP 工具的形式提供,使 AI 模型能够将其用于以下任务:
- 浏览器管理(启动、导航、关闭浏览器)
- 元素交互(点击、输入、查找元素)
- 网页抓取和自动化测试
- 截图、Cookie 管理和 JavaScript 执行等高级操作
本质上,Selenium WebDriver MCP 配置可让 AI 助手利用 Selenium WebDriver 的强大功能来实现网页自动化,并通过模型上下文协议与专用的 Selenium MCP 服务通信。这使 AI 能够控制自动化网页交互、测试和数据提取等任务。
🚀 概述
这是一个用于 Selenium 的模型上下文协议(MCP)服务,为 AI 助手和应用提供全面的 Selenium WebDriver 自动化工具。该服务通过标准化接口实现自动化网页浏览器交互、测试和抓取。
该服务使用 TypeScript 和现代 ES 模块构建,通过模型上下文协议提供类型安全的浏览器自动化功能。
✨ 主要功能
- 多浏览器支持:支持 Chrome、Firefox、Safari 和 Edge 浏览器自动化
- 全面的元素交互:点击、输入、悬停、拖放、上传文件
- 高级导航:前进、后退、刷新、窗口管理
- 等待策略:智能等待元素和页面状态
- 类型安全:使用 Zod 验证的完整 TypeScript 实现
🤝 集成
MCP 客户端集成
配置 MCP 客户端以连接 Selenium 服务:
标准配置(适用于 Windsurf、Warp、Gemini CLI 等)
{
"servers": {
"selenium-mcp": {
"command": "npx",
"args": ["-y", "selenium-webdriver-mcp@latest"]
}
}
}
在 VS Code 中安装
使用以下配置更新 VS Code 中的 mcp.json
注意:如果你刚开始使用 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": []
}
安装后,即可在 VS Code 中将 Selenium MCP 服务与 GitHub Copilot Agent 配合使用。
使用 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 Desktop 集成
添加到 Claude Desktop 配置中:
{
"mcpServers": {
"selenium-mcp": {
"command": "npx",
"args": ["-y", "selenium-webdriver-mcp@latest"]
}
}
}
截图

提示词
以下是一个用于开始 AI Agent 交互的示例提示词:
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.
注意:如需更多提示词,请查看项目的 examples 目录。
🛠️ 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(Cookie 名称) |
browser_add_cookie_by_name | 向浏览器添加新的 Cookie | cookie(Cookie 名称)、value |
browser_set_cookie_object | 在浏览器中设置 Cookie 对象 | cookie(以字符串表示的 Cookie 对象) |
browser_delete_cookie | 按名称删除特定 Cookie | value(要删除的 Cookie 名称) |
browser_delete_cookies | 删除当前浏览器会话中的所有 Cookie | 无 |
窗口管理工具
| 工具 | 描述 | 参数 |
|---|---|---|
browser_switch_to_window | 根据句柄切换到另一个浏览器窗口 | windowHandle |
browser_switch_to_original_window | 切回原始浏览器窗口 | 无 |
browser_switch_to_window_by_title | 根据页面标题切换窗口 | 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 | 切换到 iframe 元素 | by、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 | 执行 JavaScript 代码 | script、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:根据元素 ID 查找css:根据 CSS 选择器查找xpath:根据 XPath 表达式查找name:根据 name 属性查找tag:根据 HTML 标签名称查找class:根据 CSS 类名查找
📋 要求
- Node.js:版本 18.0.0 或更高
- 浏览器:已安装 Chrome、Firefox、Safari 或 Edge
- WebDriver:由 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 文件。
🤝 贡献
欢迎贡献!请随时提交 Pull Request。
- Fork 代码库
- 创建功能分支(
git checkout -b feature/AmazingFeature) - 提交更改(
git commit -m 'Add some AmazingFeature') - 推送到分支(
git push origin feature/AmazingFeature) - 发起 Pull Request
徽章/提及
❤️ 为 Model Context Protocol 生态系统倾力打造
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。