From 2ce0c13f7bb11fd70807cb90b0eb1d8992ecd923 Mon Sep 17 00:00:00 2001 From: yu <191972707@qq.com> Date: Wed, 28 Oct 2026 17:49:18 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=20README=E2=80=94?= =?UTF-8?q?=E2=80=94=E8=83=BD=E5=8A=9B=E6=8E=A5=E5=85=A5=E8=BF=9B=E5=BA=A6?= =?UTF-8?q?=E3=80=81=E6=A1=8C=E9=9D=A2=E8=87=AA=E5=8A=A8=E5=8C=96=E3=80=81?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E5=86=B2=E7=AA=81=E6=A3=80=E6=B5=8B=E4=B8=8E?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 60 ++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 44 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 6413053..52e5d71 100644 --- a/README.md +++ b/README.md @@ -3,19 +3,44 @@ 画布式 RPA 桌面端(Electron + React Flow)。把 1016 项能力目录拖到画布上,连线、配置、运行,生成可执行的 RPA 流程。 > 当前状态:任务优先的编排工作台。默认进入“编排”任务列表,编辑任务后进入上下流向画布;组件库按分类树展示,设置为独立入口。 +> 可执行能力持续接入中:**639 / 1016**(网页自动化、桌面自动化、数据、文件、办公、HTTP 等),其余灰标「待接入」,运行前检查会提前定位。 -## 已实现(Day 1) +## 已实现 + +### 编排与运行 - Electron 31 + React 18 + TypeScript + React Flow 画布 -- 1016 项组件目录:997 厂商 + 16 控制 + 3 触发器,搜索 / 11 组筛选 / 可执行与待接入状态 -- 编排工作区:任务列表、任务概览、运行/编辑入口;左侧主导航仅保留“编排”和“设置” -- 组件库树:按能力分组展开/收起,搜索命中时自动展开分类,叶子组件支持拖拽 +- 1016 项组件目录:搜索 / 11 组筛选 / 可执行与待接入状态;任务列表实时刷新 - 拖拽到画布、节点卡片、连线、缩放/平移/MiniMap、框选、撤销/重做 -- 画布主流程上下连接;异常出口默认隐藏,可在节点失败策略中按需开启 - IF / 计次循环 / 遍历 / 条件循环 / 异常捕获 容器:可把组件拖入分支或循环体 - 属性面板:按字段类型渲染输入、必填、变量、失败策略(超时/重试/间隔/跳过/延时) -- 流程 JSON 本地原子保存、自动保存、重启恢复 -- 运行页与设置页骨架;运行期完全离线 +- 流程 JSON 本地原子保存、自动保存、重启恢复;**保存冲突检测**——磁盘被外部修改时弹窗选择“加载磁盘版”或“覆盖磁盘”,不再静默互相覆盖 +- 运行中心:节点进度、运行日志(分级过滤/复制/导出)、运行变量查看 +- 任务列表忽略备份文件;编排页与运行页骨架分离 + +### 网页自动化(Electron 内置浏览器 + CDP 可信输入) + +- 浏览器:打开/关闭/切换标签、跳转/后退/前进/刷新、等待加载/停止加载、最大化/最小化 +- 信息获取:URL、Title、网页源码、Cookies 读写、浏览器截图、滚动条读写 +- 元素操作:点击、输入、密码框、下拉选择、勾选框、相似元素列表/数组、元素对象与信息、父/子/兄弟元素、文本/值/属性/源码读取、存在判断、按钮可用性、滚动到元素、鼠标悬停、元素截图、元素坐标 +- 执行 JS(多版本)、文件上传(CDP 直塞文件输入框,绕开原生对话框) +- 网页数据表格写入(按行列号精确覆盖) +- 可信输入机制参考 `C:\rpa-demo`:CDP Input、唯一定位、遮挡检查和输入回读校验;不使用 `el.click()` 伪造点击 + +### 桌面自动化(Ground 系列,PowerShell + UIA 桥) + +- 桌面元素点击(前台化 + AttachThreadInput 强制前台 + 真实鼠标坐标点击)、文本输入(ValuePattern + 剪贴板粘贴兜底)、元素存在判断、文本读取、等待元素 +- 窗口自动唤起:EnumWindows 跨虚拟桌面查找 → ShowWindow 还原 → 移回主屏可视区 +- Per-Monitor DPI 感知:多屏混合缩放下坐标不错位 +- 隐式等待重试:元素未就绪时 4 秒内自动重试 +- 底层统一走 PowerShell + UIAutomation(EncodedCommand,中文安全) + +### 质量与测试 + +- 全量测试 162 项(能力注册冒烟、流程运行集成、Word/Excel/PDF/桌面桥真实设备测试) +- 本地演示站(`127.0.0.1:17863`):网页订单页 + 网页元素演练场(表单/下拉/勾选/密码/禁用按钮/悬停/长页面) +- 内置 3 个网页自动化测试任务(浏览器导航、元素读写、滚动与 Cookie)+ 6 条固定示例任务 +- 打包冒烟测试:跳过单实例锁隔离启动,验证产物可用性 ## 开发 @@ -35,13 +60,16 @@ npm run test:e2e # 隔离启动应用并执行本地网页订单完整流 ## 目录 ``` -src/main 主进程:窗口、目录加载、流程存储、IPC -src/preload 白名单桥 -src/renderer React UI:画布、组件库、属性面板、运行/设置页 -src/shared 主/渲染共享类型 -scripts build-catalog / dev-safe / start / cdp-probe / 打包 -resources catalog.json(1016 项派生元数据)、夹具站、桌面桥 -docs 现状分析、实施方案 +src/main 主进程:窗口、目录加载、流程存储、IPC +src/main/browser 运行浏览器会话(BrowserSession,CDP 桥) +src/main/capabilities 能力实现(网页/桌面/数据/文件/办公/HTTP…) +src/main/fixture 本地演示站 +src/preload 白名单桥 +src/renderer React UI:画布、组件库、属性面板、运行/设置页 +src/shared 主/渲染共享类型 +scripts build-catalog / dev-safe / start / cdp-probe / 打包冒烟 +resources catalog.json(1016 项派生元数据)、夹具站(含元素演练场)、桌面桥 +docs 现状分析、实施方案 ``` ## 文档 @@ -51,9 +79,9 @@ docs 现状分析、实施方案 ## 边界 -- 1016 项目录中当前有 619 项通过能力注册表或运行时容器标记为可执行,覆盖控制/触发、除数据库外的数据处理、文件、网页元素层级/表格/下拉框/浏览器控制/Cookie/下载及 DOM 高级能力、HTTP、Excel 常用读写/格式/筛选/历史版本、系统路径与环境变量、进程管理、桌面键鼠/窗口对象/剪贴板图片/对话框、PDF、Word 文档编辑、SMTP 与群机器人 Webhook、文本差异、工作日判断、屏幕截图、离线图像查找与点击;其余灰标「待接入」。运行前检查会提前定位待接入组件、必填参数、多出口与断链节点。 +- 1016 项目录中当前 639 项可执行;未接入的主要为:网页数据采集(翻页抓表)家族、网页监听三件套、图表数据读取(ECharts)、下载对话框处理、桌面 Ground 剩余变体、SAP 专用等。运行前检查会提前定位待接入组件、必填参数、多出口与断链节点。 - 内置本地演示站默认监听 `127.0.0.1:17863`;新用户首次启动会获得“本地网页订单演示”任务,可离线验证网页输入、点击和文本读取。 - 编排首页提供“安装示例任务”,可安装网页订单、文件文本、Excel读写、剪贴板、Word文档和异常分支 6 条固定示例;重复安装会更新同名示例,不会无限复制。 -- 浏览器可信输入与定位机制参考 `C:\rpa-demo`:CDP Input、唯一定位、遮挡检查和输入回读校验;不使用 `el.click()` 伪造点击。 +- Tauri/WebView2 类应用的 UIA 支持天然受限(Invoke 假成功、ValuePattern 读回掩码):桌面元素点击采用“前台化 + 真实坐标点击”策略,输入采用“ValuePattern 写入 + 剪贴板粘贴兜底”。 - 不包含厂商代码、二进制、模型或前端资产;目录是从厂商元数据派生的静态定义。 - 运行期不访问云服务;HTTP/邮件属于用户显式配置的外部系统。