FORGE KUI / learn

调试设置页

启动当前窗口的 DevTools,检查元素、样式和保存状态。

版本 3.61.7

第04课
准备
设置页成功构建,浏览器可用
学完可以做
定位一个真实的布局或事件问题
下载工程 ↓settings-lab.zip

为窗口启动服务

运行 settings_lab.exe --inspect。工程调用 window->startDevTools(0),由系统分配可用端口。日志只打印 target=kui-端口 与端口号;完整 URL 含认证信息,不用于日志或反馈附件。

cpp
    if (inspect) {
        if (auto* tools = window->startDevTools(0)) {
            // 只输出目标编号,完整连接 URL 含认证信息。
            std::fprintf(stderr, "target=kui-%u port=%u\n", tools->port(), tools->port());
        } else return 3;
    }

连接精确目标

在 MCP 客户端按工具返回的目标编号连接。下面的 TARGET_FROM_LOG 表示本次进程日志中的实际编号,不能照抄成固定端口。多窗口运行时核对标题,避免操作别的应用。

text
kui_targets()
kui_connect(target=TARGET_FROM_LOG)
kui_page_info()
kui_dom(selector="#display-name")
kui_box_model(selector="#save")

复现一次校验失败

清空名称后点击保存,检查 #status 的 data-state 是否变成 error,以及输入框的 aria-invalid 是否为 true。重新输入有效名称并保存,状态应变为 success,#revision 增加。这个流程检查实际控件和宿主回调,不只观察一张初始截图。

text
kui_dom(selector="#status")
kui_dom(selector="#revision")
kui_get_style(selector="#status")
kui_screenshot(output_path="settings-state.png")

布局与性能检查

用盒模型确认工作区和按钮的尺寸。样式检查适合定位颜色、间距和溢出,性能记录用于分析连续交互的帧工作。当前设置工程未附加 Lua 引擎;不要把 Runtime.evaluate 当作浏览器 JavaScript 控制台。

当前 SDK 的键盘限制

Windows x64 SDK 3.61.7 的课程实测中,Tab 可以聚焦按钮,但 DevTools 注入的 Enter 未触发保存 click。鼠标点击保存可工作;该结果不证明所有原生键盘路径,也不能宣称全键盘验收通过。

动手练习与验收

用这些动作确认自己完成了本课,不必额外抄一份同样的代码。

  • 用 --inspect 启动,确认 DOM 中能找到 #display-name 与 #save。
  • 修改一处颜色或边距观察,再写回 app.css 并重建验证。
  • 关闭应用后重新启动,发现新目标,不复用旧认证连接。

文档有误或遗漏?

反馈此页问题 →