import { RuntimeError } from "@rpa/core"; /** * 浏览器能力统一的元素选择器入参解析(W3 定位器统一修复)。 * * 两个浏览器能力文件(browser.ts / browser-extended.ts)此前各持一份 selectorOf, * 兜底键集合不一致(extended 缺 uiWindowSelector),同一流程里同名参数在 * 两个能力下行为不同。现收敛为单一事实源,键集合为两者并集。 */ export function selectorOf(args: Record): unknown { const selector = args.uiSelector ?? args.selector ?? args.target ?? args.uiWindowSelector; if (selector === undefined || selector === null || selector === "") { throw new RuntimeError("validation_error", "元素选择器为空", { recommendation: "填写 css:#id、text:提交、aria:button=提交 或使用拾取器" }); } return selector; }