项目简介

Selenium MCP Server是一个基于Model Context Protocol (MCP) 构建的后端服务,旨在为AI助手和应用程序提供与Selenium WebDriver交互的能力。通过将Selenium的各种操作(如浏览器管理、元素交互、网页抓取等)封装成标准化的MCP工具,它允许LLM客户端以结构化、可编程的方式控制Web浏览器,从而实现智能化的Web自动化任务。

主要功能点

  • 浏览器全面控制:支持启动、关闭、导航(前进、后退、刷新)、获取当前URL和页面标题等操作。
  • 元素精准交互:提供点击、输入文本、清除内容、文件上传、获取元素文本及属性等功能,实现对网页元素的精确控制。
  • 高级行为模拟:支持鼠标悬停、双击、右键点击、拖放、按键模拟,以及执行自定义JavaScript代码,应对复杂交互场景。
  • 灵活的等待策略:能够等待特定元素出现,确保操作的稳定性。
  • 窗口与框架管理:允许在多个浏览器窗口和iframe之间切换,处理多窗口和内嵌内容。
  • Cookie管理:方便地获取、添加、修改和删除浏览器Cookie,支持会话管理。
  • 状态验证:检查元素是否显示、启用或被选中,用于条件判断和流程控制。
  • 页面滚动:支持滚动到页面顶部、底部、指定坐标或指定元素,方便浏览长页面。
  • 表单操作:提供提交表单、聚焦/失焦元素等功能。
  • 截屏功能:可捕获当前页面截图,方便调试或记录。
  • 多浏览器兼容:支持Chrome、Firefox、Edge和Safari等主流浏览器。

安装步骤

在使用前,请确保您的系统已安装Node.js (v18.0.0或更高版本)。

  1. 全局安装
    npm install -g selenium-webdriver-mcp
    或者使用'npx'直接运行(推荐用于客户端配置):
    npx selenium-webdriver-mcp

服务器配置

MCP服务器是供MCP客户端(如AI助手、LLM应用)使用的。您需要将以下配置添加到您的MCP客户端的配置文件中(例如'mcp.json'、Claude Desktop配置等),以便客户端能够发现并连接到Selenium MCP服务器。

基于命令行的标准配置(推荐,适用于Windsurf, Warp, Gemini CLI等) 这种方式通过执行一个命令来启动和管理Selenium MCP服务器,客户端会自动通过标准输入/输出来与服务器通信。

{
  "servers": {
    "Selenium": {
      "command": "npx",
      "args": ["-y", "selenium-webdriver-mcp"]
      // "type": "stdio" // 默认值为 stdio,可省略
    }
  }
}
  • '"Selenium"': 这是您在MCP客户端中为该服务器定义的名称。
  • '"command"': 启动Selenium MCP服务器的命令行程序。
  • '"args"': 传递给'command'的参数,'-y selenium-webdriver-mcp'会执行该npm包。

基于HTTP连接的配置(适用于已部署的服务器) 如果Selenium MCP服务器已部署为HTTP服务,客户端可以通过URL连接。

{
  "servers": {
    "Selenium": {
      "url": "https://smithery.ai/server/@pshivapr/selenium-mcp", // 替换为您的实际服务器URL
      "type": "http"
    }
  }
}
  • '"url"': Selenium MCP服务器的HTTP端点。
  • '"type"': 指定连接类型为HTTP。

基本使用方法

配置完成后,您的AI助手(MCP客户端)将能够识别并调用Selenium MCP服务器提供的工具。例如,一个LLM可以被提示执行以下操作来自动化一个简单的任务:

  1. 打开浏览器:调用'browser_open'工具启动一个Chrome浏览器。
  2. 导航到网页:调用'browser_navigate'工具访问指定的URL。
  3. 查找并点击元素:调用'browser_click'工具根据CSS选择器或XPath点击页面上的按钮。
  4. 输入文本:调用'browser_type'工具在文本框中输入信息。
  5. 获取页面内容:调用'browser_get_page_source'获取当前页面的HTML源代码。
  6. 关闭浏览器:调用'browser_close'工具结束浏览器会话。

AI助手会根据您的指令和当前任务,自动选择并组合这些工具来完成复杂的网页交互。

信息

分类

开发者工具