Claude 跑 MCP 增强 Selenium:模型 Key 用 TaoToken
发布时间:2026/9/14 4:48:55 锦皓数字建站

Claude 跑 MCP 增强 Selenium 这套流程原文写得并不复杂打开 Claude Desktop在 Settings→Developer→Edit Config 里贴一段 JSON添加 selenium MCP 服务器重启后 Claude 就能自己驱动浏览器、生成 Selenium 测试脚本。真正让人卡住的从来不是这段配置而是 Claude 背后的模型通道。很多人手里有 MCP 工具却拿不出一把能用的 Anthropic 官方 Key于是对话框里的 Claude 一直在转圈。解决思路是用 TaoToken 补齐模型这一层先到 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 注册并创建 API Key再把 Claude 访问模型用的 Base URL 从官方地址改成 https://taotoken.net/apiMCP 配置保持原文不动。工具链还是原文那套但模型推理不再依赖官方 Key。1. 卡在模型通道MCP 装好了Claude 却转圈1.1 原文默认的「可用的 Claude」其实卡住了一大批人原文《使用Claude和MCP增强Selenium》的目录节奏很清晰配置 MCP 服务器 → 验证安装 → 测试交互 → 生成 Selenium 脚本 → 在 IDE 里面运行。每一步都建立在一个前提上你的 Claude 是能正常回答问题的。可实际动手时很多人连「添加完 MCP 之后让 Claude 干活」这一步都走不下去。不是不会贴 JSON而是贴完之后 Claude 直接提示没有可用的模型访问凭证。MCP 服务器在本地由 npx 拉起它负责把 Selenium 的工具暴露给 Claude但 Claude 理解「帮我把 SauceDemo 登录流程写成测试」这句话需要模型 API 完成推理。原文没有花篇幅讲这个前提因为它假设你已经有一个登录了官方账号的 Claude Desktop或者手里有 Anthropic 官方 API Key。真正上手时你会发现没有可用的官方通道MCP 工具列表再完整也只是摆在那里Claude 根本无从回应。1.2 模型通道和 MCP 是两条独立的链路可以把 MCP 理解成「给 Claude 接了一只手」把模型 API 理解成「驱动 Claude 大脑运转的能源」。原文后半段让 Claude 生成 SauceDemoLoginTest 时它先要看清页面结构再写出 WebDriver 代码。看清页面结构靠 MCP 调用浏览器工具写出代码靠模型推理。如果你把模型通道换成 TaoToken相当于给大脑换了一种供能方式手还是原来那只手MCP 配置完全不用动。这也是为什么 TaoToken 在这里的定位是「统一 API / 兼容通道」它提供 Anthropic 兼容的模型访问地址让 Claude 系工具不需要依赖官方订阅也能完成推理。接入时只需要关注两个地址——一个专门去注册、创建 Key、看模型广场另一个专门填进工具的 Base URL。这两个地址不能混用后面会详细拆开。2. 先到官网拿 Key再决定在哪填 Base URL2.1 注册、创建 API Key、看模型广场打开 TaoToken 落地页后要做的事按顺序来先注册账号邮箱验证后进入控制台接着创建 API Key创建时按页面提示选择模型分组或可用模型系统会生成一串密钥最后看一眼模型广场上面列出的是当前实际可用的模型 ID后面配置 ANTHROPIC_MODEL 字段时要用到不要凭记忆编一个模型名。创建完 API Key 后第一时间复制到本地临时文件里。很多服务只在创建那一刻完整展示密钥刷新页面后就只能看到脱敏后的名称。后面配置~/.claude/settings.json时真正填进ANTHROPIC_AUTH_TOKEN的就是这串 Key而不是你登录官网用的账号密码。2.2 落地页 URL 与接口 Base URL 分工这里有一个最容易踩乱的细节落地页地址和接口地址是两回事用途完全不同。用途地址注册、创建 Key、看模型广场、看用量https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end填进 Claude 工具里的 Base URLhttps://taotoken.net/apiBase URL 一定保持https://taotoken.net/api末尾不要加/v1也不要追加任何 UTM 参数。如果把落地页整串地址填进工具模型服务请求就会打到网页服务上连接必然失败。反之如果你把接口地址当成官网去浏览器里打开会看到一个不太友好的接口提示页那也不是注册入口。记住注册去官网落地页配置填 Base URL。3. 按原文配置 selenium MCP一行不用改3.1 Settings→Developer→Edit Config 里的 JSON原文的配置入口是 Claude Desktop 的 Settings → Developer → Edit Config。点开后编辑的是claude_desktop_config.json把 selenium MCP 服务器加进去{ mcpServers: { selenium: { command: npx, args: [-y, angiejones/mcp-selenium] } } }我这里故意没有改动原文的结构。MCP server 是本地子进程它负责启动 Selenium 工具不持有你的模型 Key也不需要知道 TaoToken 的存在。所以这个 JSON 里不应该出现任何 API Key 或 Base URL 字段加了反而容易让 npx 启动时读到多余的环境变量。3.2 重启之后确认 MCP 已经挂上保存配置文件后彻底退出 Claude Desktop再重新打开。首次启动时 Claude Desktop 会调用 npx 拉取angiejones/mcp-selenium这个过程取决于 npm 网络状况快则几十秒慢则两三分钟。如果之前从没跑过这个包你甚至能看到终端窗口一闪而过的下载日志。打开一个新会话后在输入框附加的工具列表里应该能看到 selenium 相关的工具项。如果工具列表是空的先检查本机 Node.js 是否装到了 18 或更高版本再在终端手动执行一次npx -y angiejones/mcp-selenium看进程能不能常驻跑起来。这一步能帮你把「MCP 没装好」和「模型通道没通」两个问题区分开MCP 装不好的表现是工具列表为空模型通道没通的表现是工具列表正常但 Claude 不回话。4. Claude Code 通过 TaoToken 使用同一个 Selenium MCP4.1 为什么把模型通道这件事放到 Claude Code 上做Claude Desktop 本身没有提供「自定义模型 API Base URL」的开放配置入口官方客户端更多面向直接登录官方账号的使用方式。要让 TaoToken 真正接管模型推理又不破坏原文那套 MCP 配置最干净的办法是用 Claude Code——这是 Anthropic 官方命令行工具支持通过环境变量覆盖ANTHROPIC_BASE_URL也支持加载 MCP 服务器。于是整条链路变成Claude Code 读取~/.claude/settings.json里的 env把模型请求发到https://taotoken.net/api同时它又通过 MCP 协议调用本地 selenium 工具。原文里「让 Claude 生成 Selenium 脚本」的自然语言交互在 Claude Code 里照常进行区别只是模型通道换成了 TaoToken。4.2 配置 ~/.claude/settings.json编辑~/.claude/settings.json写入以下内容{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: YOUR_API_KEY, ANTHROPIC_MODEL: 你的模型ID } }三个环境变量的作用要分清ANTHROPIC_BASE_URL统一指向https://taotoken.net/api末尾没有/v1ANTHROPIC_AUTH_TOKEN填你从 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 创建的那串 API Key也就是占位符YOUR_API_KEY替换后的值ANTHROPIC_MODEL填模型广场上实际列出的模型 ID打开 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 的模型广场复制不要照抄别处文章里见过的旧模型名也不要自己拼带日期后缀的 ID。4.3 用 claude mcp add 加载 selenium在项目目录下执行claude mcp add selenium -- npx -y angiejones/mcp-selenium执行完成后重启 Claude Code输入claude mcp list确认 selenium 的状态是 connected。这一步等于把原文写在 Claude Desktop 里的同一个 MCP 服务器重新加载到 CLI 环境里工具还是那个工具只是宿主从桌面客户端换成了命令行。如果你在 macOS 或 Linux 上运行建议先把 npx 的绝对路径查出来写进命令例如/usr/local/bin/npx避免某些 shell 环境找不到 npx 导致 MCP 启动失败。用which npx就能看到路径替换掉命令里的npx即可。5. 测试交互后生成 SauceDemoLoginTest5.1 先让 Claude 用 selenium 工具看一眼页面进入 Claude Code 后不要急着甩一句「生成脚本」。原文的顺序是先验证安装、再测试交互、最后生成脚本这个顺序很值得保留。测试交互这一步本质是让 Claude 通过 MCP 里的 selenium 工具实际打开目标网站亲自看一眼登录框长什么样。你可以这样对 Claude 说调用 selenium MCP 工具打开 https://www.saucedemo.com告诉我登录区域的输入框用了什么 id 和 class。Claude 会驱动浏览器访问 SauceDemo然后回传 DOM 信息比如用户名输入框是user-name密码输入框是password登录按钮是login-button。这个「现场勘查」正是 MCP 增强 Selenium 的核心价值——模型不再凭训练数据猜页面元素而是实时看到页面结构再写代码。5.2 给出生成脚本的测试目标和断言交互验证通过后把测试目标一次说清楚使用standard_user/secret_sauce登录等待类名title出现并断言文本等于Products再断言当前 URL 包含inventory最终输出一个可直接运行的 TestNG 类。Claude 结合刚看到的页面结构会生成类似下面的核心逻辑WebDriver driver new ChromeDriver(); WebDriverWait wait new WebDriverWait(driver, Duration.ofSeconds(10)); driver.get(https://www.saucedemo.com); wait.until(ExpectedConditions.presenceOfElementLocated(By.id(user-name))) .sendKeys(standard_user); driver.findElement(By.id(password)).sendKeys(secret_sauce); driver.findElement(By.id(login-button)).click(); String title wait.until(ExpectedConditions.presenceOfElementLocated(By.className(title))) .getText(); Assert.assertEquals(title, Products); Assert.assertTrue(driver.getCurrentUrl().contains(inventory));Claude 还会补全setUp和tearDown、TestNG 注解、ChromeDriver 初始化并把WebDriverWait设置成 10 秒超时。生成完代码后先别急着关终端下一步进 Aqua 跑一遍大概率会撞上原文提到的那条报错。6. 在 Aqua 中运行处理 TestNG 与 Java 8 的不兼容6.1 新建 Selenium 项目并粘贴脚本打开 AquaFile → New → Project选择 Selenium 项目模板。模板会自带 Selenium Java 依赖和一个基本的测试框架配置但依赖版本往往偏新。新建一个名为SauceDemoLoginTest的类把上一节生成的核心逻辑连同setUp、tearDown一起粘贴进去然后把类补全成标准 TestNG 结构BeforeMethod初始化驱动、Test写登录断言、AfterMethod关闭浏览器。确认项目里的构建文件已经包含selenium-java、webdriver-manager、testng三个依赖。Aqua 的 Selenium 模板一般会帮你引入但版本可能不是你预期的IDE 会自动解析。如果之前手动建过 Maven 项目注意检查pom.xml里 TestNG 是不是 7.x这直接关系到下一个报错。6.2 报错「TestNG 版本和 Java 8 不兼容」的处理Aqua 新建项目时默认 SDK 可能是 Java 8而新版 TestNG 7.x 的 class 文件版本需要 Java 9 以上运行测试时就会抛出原文提到的那句错误TestNG 版本和 Java 8 不兼容。这不是代码逻辑的问题是编译和运行环境不匹配。原文给的解决路径是 File → Project Structure → Project 修改 SDK 版本。实际操作时把 Project SDK 切到本机已安装的 JDK 11 或 17同时把 Settings → Build Tools 里的 Gradle JVM 或 Maven JVM 同步成同一个版本再重新加载项目。再次运行testLoginWithValidCredentials浏览器会打开 SauceDemo填入凭据点击登录然后断言通过。Claude 生成的代码一次就跑通这一点和原文末尾的描述一致。6.3 回 TaoToken 控制台确认这次调用测试跑通后打开 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 进入用量页面。按时间倒序查找刚才那次 Claude Code 会话产生的请求记录你能看到使用的模型 ID、token 消耗和响应状态。记录正常说明模型通道和 MCP 工具链整条链路都处于可用状态如果这里看不到任何请求优先回~/.claude/settings.json检查ANTHROPIC_BASE_URL是否真的生效。以后在这个项目上继续加测试用例不需要再动任何配置。7. 排障按「模型通道 → MCP → 脚本运行」顺序查7.1 Base URL 末尾加了 /v1 导致请求失败Anthropic 官方接口路径习惯带/v1/messages但 TaoToken 的 Base URL 是https://taotoken.net/api不要把/v1拼上去。一旦拼上Claude Code 会请求https://taotoken.net/api/v1/...拿不到预期响应。检查settings.json里有没有多余的斜杠、路径段或 UTM 参数ANTHROPIC_BASE_URL必须就是一个干净的根地址。7.2 claude mcp list 里 selenium 状态异常如果添加 MCP 后状态不是 connected先在终端手动执行npx -y angiejones/mcp-selenium看是否能常驻运行。常见原因无非三种npm 源太慢导致拉包超时、内网环境拦了 npm 请求、Node 版本低于 18。手动跑通了再回 Claude Code 里执行claude mcp reset selenium重新加载。MCP 跟模型通道无关所以别在这种报错时去改 TaoToken 配置方向不对浪费时间。7.3 模型 ID 填错导致调用被拒即使 Key 和 Base URL 都对模型 ID 填一个模型广场上不存在的名字照样拿不到结果。打开 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 的模型广场复制当前可用的模型 ID 填进ANTHROPIC_MODEL。不要照抄别人文章里的模型名也不要自己拼带日期后缀的 ID广场上写什么就填什么。如果这是一台新机器连 Key 都还没创建直接去 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 注册并把新 Key 填回settings.json然后从第 3 章配置 MCP 那一步重走一遍Selenium 测试生成流程就能完整跑通。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。