Appearance
节点模块(node)
node 模块约定
用
findNode/findNodeEx按平面条件查询节点。
最短示例:
javascript
let btn = node.findNode({ label: '确定', type: 'XCUIElementTypeButton' }, 8000, 50);
if (btn) btn.clickCenter();node.findNode - 首个匹配节点
typescript
function node.findNode(
query: { label?, text?, title?, identifier?, id?, value?, type?, enabled?, visible? },
timeout: number,
maxDepth: number
): Promise<NodeInfo | null>;参数说明:
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
| query | object | 是 | - | 平面条件;text 等同 label;id 等同 identifier |
| timeout | number | 是 | - | 拉取 / 匹配超时毫秒 |
| maxDepth | number | 是 | - | 树最大深度 |
返回字段(NodeInfo):
| 字段 | 类型 | 描述 |
|---|---|---|
| label / title / type / identifier / value | string | 控件属性 |
| bounds | object | x,y,width,height,centerX,centerY(物理像素) |
| clickCenter() | Promise<boolean> | 点中心 |
| parent / child / allChildren / siblings | 方法 | 树导航 |
示例:
javascript
let n = node.findNode({ label: '登录' }, 8000, 50);
if (n) auto.click(n.bounds.centerX, n.bounds.centerY);node.findNodeEx - 全部匹配节点
typescript
function node.findNodeEx(query, timeout, maxDepth): Promise<NodeInfo[]>;参数说明:
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
| query / timeout / maxDepth | - | 是 | - | 同 findNode |
返回值:
| 类型 | 描述 |
|---|---|
Promise<NodeInfo[]> | 全部命中;无则为空数组 |
示例:
javascript
let list = node.findNodeEx({ type: 'XCUIElementTypeButton' }, 8000, 50);
logger.debug('按钮数', list.length);