Skip to content

节点模块(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>;

参数说明:

参数名类型是否必填默认值描述
queryobject-平面条件;text 等同 labelid 等同 identifier
timeoutnumber-拉取 / 匹配超时毫秒
maxDepthnumber-树最大深度

返回字段(NodeInfo):

字段类型描述
label / title / type / identifier / valuestring控件属性
boundsobjectx,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);