Selenium WebDriver MCP服务器

一个桥接MCP客户端和Selenium WebDriver的服务器实现,提供浏览器自动化、元素交互、网页抓取和自动化测试等功能。

  • by pshivapr
  • TypeScript
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 pshivapr/selenium-mcp

使用说明

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 文件。

🤝 贡献

  1. 欢迎贡献!请随时提交拉取请求。
  2. 为仓库创建分支(或“克隆仓库”)git checkout -b feature/AmazingFeature创建你的功能分支(
  3. )git commit -m 'Add some AmazingFeature'提交您的更改(
  4. )git push origin feature/AmazingFeature推送至分支(
  5. )

提交一个拉取请求

徽章/提及

MCP市场


脉搏