Skip to content
On this page

Ui节点相关

javascript
//Node版引擎导入方式
import core from 'cheese-node';
//JS版引擎导入方式
const core = require('cheese-js');

筛选节点:forEachNode(callback:Callback): this

🔒权限: 无障碍

参数:

  • any (callback):筛选回调

返回值:

  • 🟢this:当前类对象
  • 🔴null

用法示例:

javascript
//更多属性请参考代码提示
//isEditable():boolean;
//isDismissable():boolean;
//isChecked():boolean;
//isEnabled():boolean;
//isPassword():boolean;
//isScrollable():boolean;
//isGranularScrollingSupported():boolean;
//isTextSelectable():boolean;
//isImportantForAccessibility():boolean;
//isAccessibilityDataSensitive():boolean;
//getText(): string;
//getViewIdResourceName(): string;
//getWindowId(): number;
//getScopeId(): string;
//getScopeName(): string;
//getClassName(): string;
//getChild(i:number): AccessibilityNodeInfoCompat;
//getBoundsInWindow(outBounds:Rect);
//getBoundsInScreen(outBounds:Rect);
//getRoleDescription():string;
//getStateDescription():string;
//getContentDescription():string;
//const uinode = new core.uinode();
let u =uinode.forEachNode((e) => {
return e.getText()==="连接"
})
if(u.size()>0){
  console.log("节点存在")
console.log(u.get(0).getBounds())
}

let u1 =uinode.forEachNode((e) => {
    let c = e.getBoundsInScreen()
    return c.left===150 && c.top===536 && c.right===864  && c.bottom===603
})
if(u1.size()>0){
  console.log("节点存在")
  console.log(u1.get(0).getText())
}

判断节点是否存在:size(): number

🔒权限: 无障碍

返回值:

  • 🟢number:节点列表长度
  • 🔴null

用法示例:

javascript
let u1 =uinode.forEachNode((e) => {
    let c = e.getBoundsInScreen()
    return c.left===150 && c.top===536 && c.right===864  && c.bottom===603
})
if(u1.size()>0){
  console.log("节点存在")
  console.log(u1.get(0).getText())
}

清除节点缓存:clearNodeCache(): boolean

🔒权限: 无障碍

参数:

  • any (callback):筛选回调

返回值:

  • 🟢this:当前类对象
  • 🔴null

用法示例:

javascript
const uinode = new core.uinode();
uinode.clearNodeCache()

获取节点父亲节点: getParent(): this

🔒权限: 无障碍

参数:

  • number (value):节点在 nodeObj 数组中的索引值 不填默认为0

返回值:

  • 🟢uinode:uinode对象
  • 🔴null

用法示例:

javascript
const uinode = new core.uinode();
let parent = uinode.forEachNode((e) => {
return e.getText==="连接"
}).get(0).getParent().getText()
console.log(parent)

获取节点儿子节点: getChildren(): this

🔒权限: 无障碍

参数:

  • number (value):节点在 nodeObj 数组中的索引值 不填默认为0

返回值:

  • 🟢uinode:uinode对象
  • 🔴null

用法示例:

javascript
const uinode = new core.uinode();
let children = uinode.forEachNode((e) => {
return e.getText==="连接"
}).get(0).getChildren().get(0).getText()
console.log(children)

获取节点text信息:getText()

🔒权限: 无障碍

参数:

  • number (value):节点在 nodeObj 数组中的索引值 不填默认为0

返回值:

  • 🟢string:text内容
  • 🔴null

用法示例:

javascript
const uinode = new core.uinode();
uinode.forEachNode((e) => {
return e.getText==="连接"
}).get(0).getText()
console.log(text)

获取节点范围:getBounds()

🔒权限: 无障碍

参数:

  • number (value):节点在 nodeObj 数组中的索引值 不填默认为0

返回值:

  • 🟢Bounds:范围信息
  • 🔴null

用法示例:

javascript
const uinode = new core.uinode();
let bounds = uinode.forEachNode((e) => {
return e.getText==="连接"
}).get(0).getBounds()
console.log(bounds)

获取节点Id:getId()

🔒权限: 无障碍

参数:

  • number (value):节点在 nodeObj 数组中的索引值 不填默认为0

返回值:

  • 🟢string:id信息
  • 🔴null

用法示例:

javascript
const uinode = new core.uinode();
let id = uinode.forEachNode((e) => {
return e.getText==="连接"
}).get(0).getId()
console.log(id)

获取节点PackageName:getPackageName()

🔒权限: 无障碍

参数:

  • number (value):节点在 nodeObj 数组中的索引值 不填默认为0

返回值:

  • 🟢string:Pkg信息
  • 🔴null

用法示例:

javascript
const uinode = new core.uinode();
let pkg = uinode.forEachNode((e) => {
return e.getText==="连接"
}).get(0).getPackageName()
console.log(pkg)

获取节点类:getClassName()

🔒权限: 无障碍

参数:

  • number (value):节点在 nodeObj 数组中的索引值 不填默认为0

返回值:

  • 🟢string:Clz信息
  • 🔴null

用法示例:

javascript
const uinode = new core.uinode();
let clz = uinode.forEachNode((e) => {
return e.getText==="连接"
}).get(0).getClassName()
console.log(clz)

追加文本到输入框:appendText(text)

🔒权限: 无障碍

参数:

  • string (text):要输入的内容

用法示例:

javascript
let clz = uinode.forEachNode((e) => {
    return e.getText==="连接"
}).get(0).appendText("Hello")
console.log(clz)

设置文本到输入框:trySetText(text)

🔒权限: 无障碍

参数:

  • string (text):要输入的内容

返回值:

  • 🟢boolean: true
  • 🔴boolean: false

用法示例:

javascript
let clz = uinode.forEachNode((e) => {
    return e.getText==="连接"
}).trySetText("Hello")
console.log(clz)

节点尝试点击:tryClick()

🔒权限: 无障碍

当此节点点击失败,会尝试向上级容器尝试

参数:

  • number (value):节点在 nodeObj 数组中的索引值 不填默认为0

返回值:

  • 🟢boolean:true
  • 🔴boolean:fasle

用法示例:

javascript
const uinode = new core.uinode();
let d = uinode.forEachNode((e) => {
return e.getText==="连接"
})
if (d.get(0).tryClick()) {
console.log("点击成功")
}

节点点击:click()

🔒权限: 无障碍

失败率较高

参数:

  • number (value):节点在 nodeObj 数组中的索引值 不填默认为0

返回值:

  • 🟢boolean:true
  • 🔴boolean:fasle

用法示例:

javascript
const uinode = new core.uinode();
let d = uinode.forEachNode((e) => {
return e.getText==="连接"
})
if (d.get(0).click()) {
console.log("点击成功")
}

节点长按点击:longClick()

🔒权限: 无障碍

失败率较高

参数:

  • number (value):节点在 nodeObj 数组中的索引值 不填默认为0

返回值:

  • 🟢boolean:true
  • 🔴boolean:fasle

用法示例:

javascript
const uinode = new core.uinode();
let d = uinode.forEachNode((e) => {
return e.getText==="连接"
})
if (d.get(0).longClick()) {
console.log("点击成功")
}

尝试节点长按点击:tryLongClick()

🔒权限: 无障碍

当此节点点击失败,会尝试向上级容器尝试

参数:

  • number (value):节点在 nodeObj 数组中的索引值 不填默认为0

返回值:

  • 🟢boolean:true
  • 🔴boolean:fasle

用法示例:

javascript
const uinode = new core.uinode();
let d = uinode.forEachNode((e) => {
return e.getText==="连接"
})
if (d.get(0).tryLongClick()) {
console.log("点击成功")
}

双击点击节点:doubleClick()

🔒权限: 无障碍

参数:

  • number (value):节点在 nodeObj 数组中的索引值 不填默认为0

返回值:

  • 🟢boolean:true
  • 🔴boolean:fasle

用法示例:

javascript
const uinode = new core.uinode();
let d = uinode.forEachNode((e) => {
return e.getText==="连接"
})
if (d.get(0).doubleClick()) {
console.log("点击成功")
}

全局节点点击:globalClick()

🔒权限: 无障碍

常用来点击网页节点

参数:

  • number (value):节点在 nodeObj 数组中的索引值 不填默认为0

返回值:

  • 🟢boolean:true
  • 🔴boolean:fasle

用法示例:

javascript
const uinode = new core.uinode();
let d = uinode.forEachNode((e) => {
return e.getText==="连接"
})
if (d.get(0).globalClick()) {
console.log("点击成功")
}

全局长按节点:globalLongClick()

🔒权限: 无障碍

常用来点击网页节点

参数:

  • number (value):节点在 nodeObj 数组中的索引值 不填默认为0

返回值:

  • 🟢boolean:true
  • 🔴boolean:fasle

用法示例:

javascript
const uinode = new core.uinode();
let d = uinode.forEachNode((e) => {
return e.getText==="连接"
})
if (d.get(0).globalLongClick()) {
console.log("点击成功")
}