SuperAPI AI 工具集

umbraco-chrome-navigation

办公与效率

查看项目

更新于 10-16 00:21

技能介绍

用途:在 Chrome 中通过 Claude-in-Chrome 自动化驱动并检查 Umbraco 后台。Umbraco 后台由 Lit Web Components 构成,元素处于 open shadow DOM 中,内置 find 与 read_page 无法穿透 shadow root,返回内容极少;模态框有独立堆叠上下文,常渲染在约 1536px 视口之外;模态切换期间截图滞后于实时 DOM,容易误判状态。本技能通过注入小型辅助脚本,改为从 DOM 读取状态并按标签/文本操作,而不是按坐标导航。

主要能力:辅助工具位于本技能的 scripts/umbraco-chrome-helpers.js,需将全部内容粘贴到 mcp__claude-in-chrome__javascript_tool(后台标签页),定义 window.__umb,并把源码存入 localStorage.__umbSrc。页面加载会清除 window.__umb 但保留 localStorage,导航后用 eval(localStorage.__umbSrc) 重新注入。API 包括:__umb.snapshot() 列出可见可操作元素;__umb.find(text,{role,tag}) 按标签/文本定位元素并返回中心坐标;__umb.click(text,{role,tag,nth}) 点击;__umb.fill(labelSubstr,value) 填充输入框(派发 input+change);__umb.modals() 列出打开的模态/侧栏/对话框及其按钮;__umb.waitFor(text,{role}) 轮询等待元素出现;__umb.waitGone(text) 等待元素消失;__umb.section(name) 定位分区标签;__umb.treeActions(itemName) 打开树项操作菜单。

使用方式:先按常规方式启动浏览器会话(tabs_context_mcp → tabs_create_mcp 或复用后台标签页),导航至 <your-host>/umbraco(本仓库主机为 localhost:44325)。__umb.click() 使用元素真实 .click(),适用于工作区或模态内的按钮与选项;但分区标签(Content、Settings 等)及侧栏树分组标题需要可信用户手势,应先用 __umb.find 或 __umb.section 获取坐标,再用 mcp__claude-in-chrome__computer 左键点击 {x,y}。典型循环:注入工具包、用 snapshot/find 查看状态、用 computer 工具导航分区与展开树分组、用 __umb.click/fill 执行页内操作、每步后用 find/modals/location.pathname 校验,仅在结果为视觉产物或需向用户提供证据时截图。

注意事项与限制:离开含未保存状态的工作区会弹出 umb-discard-changes-modal 并静默阻止导航,若导航无反应先运行 __umb.modals() 再 __umb.click('Discard changes') 或 'Save'。深链至 …/create/… 工作区常渲染空白,应通过树/集合的 Create 操作进入。切换到分区后侧栏树异步加载,需先 __umb.waitFor 已知项。重建数据库会使旧令牌失效并跳转 /umbraco/login,需重新注入并登录。javascript_tool 隐私守卫禁止批量返回 href/URL/base64,只返回标签与坐标。多步骤 UI 建站较脆弱,仅需实体存在时建议改用 Management API,通过 @umbraco-cms/acceptance-test-helpers 的 umbracoApi.* 播种;后台 OAuth 令牌保存在内存中,无法从页面借用于直接 API 调用。