selenium-mcp(包名 seleniumboot-mcp)是一个基于 Python 的 Model Context Protocol(MCP)服务器,用于把 Selenium WebDriver 自动化带给 Claude 及其他 AI 助手。它让 AI 助手可以控制真实浏览器:导航页面、与元素交互、运行断言,并基于录制的会话生成可直接运行的 Java TestNG / JUnit 5 / Cucumber / pytest 测试代码。
主要能力
- 默认提供 43 个工具,设置环境变量 SELENIUM_MCP_TOOLS=all 后暴露全部 77 个工具。
- 支持生成 Java TestNG / JUnit 5 以及 Python pytest 测试代码。
- 截图以 ImageContent 返回,可在 Claude 中内联渲染。
- 完整会话录制,涵盖 hover、double_click、right_click、scroll、select_option 等操作。
- 针对 hover、拖放、选择、滚动提供 Java 与 Python 模板的代码生成。
- 首次使用时自动启动浏览器,无需显式调用 start_browser。
- 支持 Page Object Model 生成(generate,language=java、kind=page_object)。
- 支持 Cucumber / Gherkin 步骤生成(generate,language=gherkin)。
- 自愈定位器:当选择器失效时自动尝试备用策略。
- Alert/对话框处理、iframe 切换、shadow DOM、表格提取。
- Cookie、localStorage、sessionStorage 管理。
- 通过 Chrome DevTools Protocol 进行移动设备模拟。
- 发送特殊按键(Tab、Enter、功能键、Ctrl+A 等)。
- 通过 <input type="file"> 上传文件。
- 捕获浏览器控制台日志。
- 多标签页管理(打开、关闭、列出)。
- 页面滚动(顶部、底部、按像素)。
- C# NUnit + Selenium 代码生成。
- GitHub Actions CI 工作流生成器(Maven / Gradle / pytest)。
- Playwright TypeScript 迁移提示。
- Jenkins / GitLab CI 的 CI/CD 配置。
使用方式 运行环境要求 Python 3.10+ 与 Chrome;无需单独安装 ChromeDriver,Selenium Manager 会自动处理。
VS Code(最简单)——从 VS Code Marketplace 安装 Selenium Boot MCP 扩展。该扩展会自动:向 GitHub Copilot 注册 MCP 服务器(无需配置文件);在项目中创建 .mcp.json,以便 Claude Code 在下次打开时检测到;如缺少 Python 包则提示执行 pip install seleniumboot-mcp。当 Claude Code 询问“Allow MCP server seleniumboot?”时点击 Allow。
JetBrains IDE——在 Settings → Plugins → Marketplace 中搜索“Selenium Boot MCP”安装(或从插件页面安装)。该插件会向 JetBrains AI Assistant 注册 MCP 服务器,并在缺少 Python 包时提示 pip install seleniumboot-mcp。可通过 Tools → Selenium Boot MCP 安装/升级、注册或检查状态。
VS Code(手动)——为 GitHub Copilot 在项目根目录添加 .vscode/mcp.json;为 Claude Code 在项目根目录添加 .mcp.json。在 VS Code 中打开项目后,Claude Code 会提示批准该服务器。
Claude Desktop——编辑配置:Windows 为 %APPDATA%\claude-desktop\config.json,macOS 为 ~/.config/claude-desktop/config.json,然后重启 Claude Desktop。
服务器运行后,可直接用自然语言与 Claude 交流,无需调用 start_browser,Chrome 会在首次使用时自动启动。Claude 控制真实浏览器、记录每个操作,并按请求生成可直接粘贴进 Maven 或 Gradle 项目的完整测试代码。
自愈定位器 当某个选择器找不到元素时,seleniumboot-mcp 会在放弃前自动尝试替代策略。成功的回退会被缓存,之后自动复用已修复的选择器。可使用 get_healed_locators 检查缓存并更新测试代码,使用 clear_healed_locators 重新开始。
Selenium Boot 项目支持 如果所在项目包含 Selenium Boot(通过 selenium-boot.yml 或 io.github.seleniumboot 依赖自动检测,无需开关),相同工具会改为生成框架原生代码:类继承 BaseTest / BaseJUnit5Test / BaseCucumberSteps,无需编写驱动生命周期样板;定位器遵循无障碍优先的层级(getByRole / getByLabel / getByTestId);断言为 web-first(assertThat(locator).isVisible()/.hasText()),而非原始 TestNG/JUnit 调用。若未检测到 Selenium Boot 项目,生成的 Java 代码会附带简短注释说明该选项并提供链接,其他不变,Python/C# 输出不受影响。
迁移现有 Selenium 项目 migrate 工具会对项目运行 selenium-boot-migrator 的只读 analyze,并返回其 JSON 报告(哪些可干净映射、哪些需要人工处理)。它需要 Java 17+。首次使用时从 GitHub 下载固定版本 migrator(v0.1.1)到 ~/.cache/seleniumboot-mcp/,校验 SHA-256 后复用;这是该工具唯一的网络调用。可通过设置 SELENIUM_BOOT_MIGRATOR_JAR 指向自行构建的 jar,或把 selenium-boot-migrator 启动器放到 PATH 来跳过下载。它不会修改你的项目。
限制与注意事项
- 需要 Python 3.10+ 和 Chrome。
- 工具定义每会话都会发送给模型;自 0.8.0 起默认暴露核心配置(43 个工具,约 3.9k tokens),涵盖录制与生成工作流(浏览器、元素、断言、面向所有输出目标的单一 generate 工具以及 migrate)。Cookie、存储、窗口/标签页、网络模拟、设备仿真、截图差异、无障碍、自愈、shadow DOM、表格以及双击/右键/拖拽等不在默认范围内。设置 SELENIUM_MCP_TOOLS=all 暴露全部 77 个(约 6.4k tokens)。
- migrate 工具需要 Java 17+,且仅做只读分析,不会编辑项目。
相关链接 GitHub:github.com/seleniumboot/selenium-mcp PyPI:pypi.org/project/seleniumboot-mcp VS Code Marketplace:marketplace.visualstudio.com