Chrome MCP客户端RPA
用于RPA(机器人流程自动化)的全面Chrome自动化工具包,可实现DeepSeek和其他LLM平台的浏览器自动化、对话提取、网络抓取和聊天历史管理。
🚀 特性
- 远程Chrome自动化:通过ChromeDriver或Chrome DevTools协议控制Chrome浏览器
- DeepSeek集成:DeepSeek聊天平台自动化专用工具
- 对话提取:从web界面提取和处理聊天对话
- 历史管理:批量删除聊天记录条目
- Web剪贴:提取DOM内容、链接和结构化数据
- 电脑屏幕截图工具:用于验证的自动屏幕截图功能
- 多模式支持:适用于各种LLM平台和聊天界面
📋 先决条件
- Node.js≥16.0.0
- 已安装Chrome浏览器
🔧 安装
# Clone the repository
git clone https://github.com/username/chrome-mcp-client-rpa.git
cd chrome-mcp-client-rpa
# Install dependencies
npm install
# Install TypeScript execution environment
npm i -D typescript ts-node @types/node🎯 可用脚本
1.新的聊天开启器
在DeepSeek平台上打开一个新的聊天会话。
npm start
# or
ts-node --esm src/1-newchat-opener.ts2.聊天注射器
将自定义脚本注入聊天界面。
ts-node --esm src/2-chat-injector.ts3.DOM导出器
从DeepSeek页面导出完整的DOM结构。
npm run extract-dom
# or
ts-node --esm src/3-exportDeepSeekDom.ts4.对话提取器
从web界面提取聊天对话和对话。
npm run extract-dialogue
# or
ts-node --esm src/4-htmlDialogueExtractor.ts5.链接计数器
统计并提取网页中的所有链接。
npm run count-links
# or
ts-node --esm src/5-totalLinks.ts6.历史记录提取器
从DeepSeek提取聊天历史记录。
npm run extract-history
# or
ts-node --esm src/6-historyRecordExtractor.ts7.清除聊天记录
批量删除DeepSeek侧边栏中的聊天记录条目。
npm run clear-history -- --base http://127.0.0.1:9222 --url https://chat.deepseek.com/ --timeout 20000平法学硕士
测试与LLM服务的连接。
npm run ping-llm
# or
ts-node --esm src/llmPing.ts电脑屏幕截图工具
捕获网页的屏幕截图。
ts-node --esm src/takeSnapshot.ts📝 命令行参数
清除历史脚本参数:
--base:chrome devtools websocket URL(默认值:http://127.0.0.1:9222)--url:DeepSeek条目URL(默认值:https://chat.deepseek.com/)--timeout:显式等待超时(毫秒)(默认值:20000)
🏗️ 建筑
Chrome DevTools协议模式
- 通过WebSocket与Chrome直接通信
- 不需要外部依赖
- 更快、更轻
- 使用Chrome的内置调试功能
🔍 技术实现
明确的等待策略
until.elementLocated:等待元素存在until.elementIsVisible:等待元素可见性until.elementIsEnabled:等待元素交互
元素选择策略
- 侧边栏容器:
aside,[data-testid*="sidebar"],[class*="sidebar" i] - 历史项目:
aside a[href*="/chat/"],//aside//a[contains(@href, "/chat/")] - 项目菜单:
button[aria-label*="More"],button[aria-label*="Menu"] - 删除操作:
//div[@role="menu"]//*[contains(text(), "Delete")] - 确认对话框:
//div[@role="dialog"]//button[contains(., "Delete"|"OK")]
错误处理
- 全面的试捕块,实现稳健运行
- 找不到元素时,性能会下降
- 调试和验证的详细日志记录
📊 测试用例
- 单项删除:1聊天记录→ 0 执行后的项目
- 多个项目:批量删除多个历史条目
- 未登录:优雅地处理登录页面,并记录错误
- 侧边栏塌陷:自动展开并继续删除
- 不同的UI变体:处理各种按钮配置
- 确认对话框:正确处理删除确认
- 网络延迟:慢速连接的超时时间高(30000ms)
- 无头模式:无头环境中的完整功能
- 连接失败:妥善处理远程连接错误
- 屏幕截图验证:验证截图之前/之后
🛡️ 安全与验证
- 范围删除:仅目标
/chat/侧边栏中的链接 - 删除后验证:重新计数项目以确认删除
- 综合录井:记录所有操作以进行可追溯性
- 截图证据:验证截图之前/之后
- 无数据修改:除预期删除外的只读操作
📁 输出结构
logs/
├── deepseek-clear-history_YYYY-MM-DD_HH-mm-ss.log
├── export-dom_YYYY-MM-DD_HH-mm-ss.log
└── ...
output/
├── history-before_YYYY-MM-DD_HH-mm-ss.png
├── history-after_YYYY-MM-DD_HH-mm-ss.png
├── dom-export_YYYY-MM-DD_HH-mm-ss.json
└── ...🚀 入门指南
- 通过远程调试启动Chrome:
# Windows
start chrome.exe --remote-debugging-port=9222
# macOS
open -a "Google Chrome" --args --remote-debugging-port=9222
# Linux
google-chrome --remote-debugging-port=9222- 登录DeepSeek 并导航到聊天界面
- 运行脚本:
ts-node --esm src/7-clear-history.ts --base http://127.0.0.1:9222 --url https://chat.deepseek.com/🔧 故障排除
常见问题
未找到元素:
- 增加
--timeout参数 - 确保您已登录DeepSeek
- 检查页面是否已完全加载
连接失败:
- 验证Chrome是否在端口9222上启用远程调试的情况下运行
- 检查防火墙设置
- 确保Chrome浏览器响应迅速
截图保存失败:
- 确保
output/目录具有写入权限 - 检查可用磁盘空间
脚本超时:
- 增加慢速网络连接的超时值
- 检查Chrome浏览器的响应能力
调试模式
通过检查中的日志文件启用详细日志记录 logs/ 目录。
📈 性能优化
- 调整
--timeout基于网络条件 - 关闭不必要的浏览器选项卡以释放资源
- 使用Chrome DevTools协议实现高效的浏览器自动化
🔒 安全考虑
- 脚本仅与指定域交互
- 不存储或传输敏感数据
- 记录所有操作以进行审计跟踪
- 浏览器自动化仅限于用户可见的操作
📚 其他资源
🤝 贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
📄 许可证
ISC许可证-有关详细信息,请参阅许可证文件
📝 类型检查
npm run typecheck🔧 代码质量
对于linting和代码样式检查,请指定您首选的lint命令,我会将其集成到脚本中。
