Skip to content

Ui节点相关

javascript
const core = require('cheese-js');
lua
local core = require('cheese-lua')

筛选节点: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;
//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())
}
lua
local uinode = core.uinode.new()
local u = uinode:forEachNode(function(e)
    return e:getText() == "连接"
end)
if u:size() > 0 then
    print("节点存在")
    print(u:get(0):getBounds())
end

local u1 = uinode:forEachNode(function(e)
    local c = e:getBoundsInScreen()
    return c.left == 150 and c.top == 536 and c.right == 864 and c.bottom == 603
end)
if u1:size() > 0 then
    print("节点存在")
    print(u1:get(0):getText())
end

判断节点是否存在: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())
}
lua
local uinode = core.uinode.new()
local u1 = uinode:forEachNode(function(e)
    local c = e:getBoundsInScreen()
    return c.left == 150 and c.top == 536 and c.right == 864 and c.bottom == 603
end)
if u1:size() > 0 then
    print("节点存在")
    print(u1:get(0):getText())
end

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

🔒权限: 无障碍

参数:

  • any (callback):筛选回调

返回值:

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

用法示例:

javascript
const uinode = new core.uinode();
uinode:clearNodeCache()
lua
local uinode = core.uinode.new()
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)
lua
local uinode = core.uinode.new()
local parent = uinode:forEachNode(function(e)
    return e:getText() == "连接"
end):get(0):getParent():getText()
print(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)
lua
local uinode = core.uinode.new()
local children = uinode:forEachNode(function(e)
    return e:getText() == "连接"
end):get(0):getChildren():get(0):getText()
print(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)
lua
local uinode = core.uinode.new()
local text = uinode:forEachNode(function(e)
    return e:getText() == "连接"
end):get(0):getText()
print(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)
lua
local uinode = core.uinode.new()
local bounds = uinode:forEachNode(function(e)
    return e:getText() == "连接"
end):get(0):getBounds()
print(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)
lua
local uinode = core.uinode.new()
local id = uinode:forEachNode(function(e)
    return e:getText() == "连接"
end):get(0):getId()
print(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)
lua
local uinode = core.uinode.new()
local pkg = uinode:forEachNode(function(e)
    return e:getText() == "连接"
end):get(0):getPackageName()
print(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)
lua
local uinode = core.uinode.new()
local clz = uinode:forEachNode(function(e)
    return e:getText() == "连接"
end):get(0):getClassName()
print(clz)

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

🔒权限: 无障碍

参数:

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

用法示例:

javascript
let clz = uinode.forEachNode((e) => {
    return e.getText()==="连接"
}).get(0).appendText("Hello")
console.log(clz)
lua
local uinode = core.uinode.new()
local clz = uinode:forEachNode(function(e)
    return e:getText() == "连接"
end):get(0):appendText("Hello")
print(clz)

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

🔒权限: 无障碍

参数:

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

返回值:

  • 🟢boolean: true
  • 🔴boolean: false

用法示例:

javascript
let clz = uinode.forEachNode((e) => {
    return e.getText()==="连接"
}).trySetText("Hello")
console.log(clz)
lua
local uinode = core.uinode.new()
local clz = uinode:forEachNode(function(e)
    return e:getText() == "连接"
end):trySetText("Hello")
print(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("点击成功")
}
lua
local uinode = core.uinode.new()
local d = uinode:forEachNode(function(e)
    return e:getText() == "连接"
end)
if d:get(0):tryClick() then
    print("点击成功")
end

节点点击: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("点击成功")
}
lua
local uinode = core.uinode.new()
local d = uinode:forEachNode(function(e)
    return e:getText() == "连接"
end)
if d:get(0):click() then
    print("点击成功")
end

节点长按点击: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("点击成功")
}
lua
local uinode = core.uinode.new()
local d = uinode:forEachNode(function(e)
    return e:getText() == "连接"
end)
if d:get(0):longClick() then
    print("点击成功")
end

尝试节点长按点击: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("点击成功")
}
lua
local uinode = core.uinode.new()
local d = uinode:forEachNode(function(e)
    return e:getText() == "连接"
end)
if d:get(0):tryLongClick() then
    print("点击成功")
end

双击点击节点: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("点击成功")
}
lua
local uinode = core.uinode.new()
local d = uinode:forEachNode(function(e)
    return e:getText() == "连接"
end)
if d:get(0):doubleClick() then
    print("点击成功")
end

全局节点点击: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("点击成功")
}
lua
local uinode = core.uinode.new()
local d = uinode:forEachNode(function(e)
    return e:getText() == "连接"
end)
if d:get(0):globalClick() then
    print("点击成功")
end

全局长按节点: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("点击成功")
}
lua
local uinode = core.uinode.new()
local d = uinode:forEachNode(function(e)
    return e:getText() == "连接"
end)
if d:get(0):globalLongClick() then
    print("点击成功")
end

Released under the GPL-3.0 License.