节点函数-手机内执行
说明
- 节点模块函数主要是跟节点操作相关联
- 该模块没有模块前缀,可以直接调用函数
- 由于IOS的限制,可能部分机器获取节点过慢,建议获取节点后进行锁定节点后,在进行查找
- 也可以使用设置节点获取参数的方式进行
- 不适合的页面:比如适配播放页面等
提示
这个模块运算是在手机内执行的,数据也是存在手机内
nodeAgent.setFetchNodeParam 设置节点参数
- 设置获取节点的基础参数,这个参数可以有效减少获取节点的数量和消耗的时间
- 支持版本: EC iOS 中控 5.0.0+
- @param ext 是一个map,例如
{"visibleFilter":1}
- visibleFilter 1 代表不管visible是true还是false都获取,2 代表只获取 visible=true的节点
- labelFilter 1 代表不管label是否有值都获取,2 代表只获取label有值的节点
- boundsFilter 1 代表不过滤 2 bounds 区域属性x,y,w,h都小于0就被过滤
- maxDepth 代表要获取节点的层级,越少速度越快,建议 1 - 500
- excludedAttributes 代表要过滤的属性,用英文逗号分割,可以增加抓取速度,例如 visible,selected,enable
- @return
{bool}
true 成功,false 失败
function main() {
var data = nodeAgent.setFetchNodeParam({
"labelFilter": "2",
"maxDepth": "20",
"visibleFilter": "2",
"boundsFilter": "1",
"excludedAttributes": ""
})
logd(data);
}
main();
nodeAgent.getNodeInfo 获取节点集合
- 支持版本: EC iOS 中控 5.0.0+
- @param selectors 节点选择器
- @param timeout 超时时间,单位毫秒
- @return
{array}
节点对象集合
function main() {
var data = nodeAgent.getNodeInfo(label("aaa"), 1000);
logd(JSON.stringify(data));
}
main();
nodeAgent.getOneNodeInfo 获取单节点
- 支持版本: EC iOS 中控 5.0.0+
- @param selectors 节点选择器
- @param timeout 超时时间,单位毫秒
- @return
{NodeInfo}
节点对象
function main() {
var data = nodeAgent.getOneNodeInfo(label("aaa"), 1000);
logd(JSON.stringify(data));
}
main();
nodeAgent.parent 查询节点的父级
- 查询节点的父级
- @param nodeInfo NodeInfo 节点对象
- @return NodeInfo
{NodeInfo 对象|null}
function main() {
let n = nodeAgent.getOneNodeInfo(name("Other").name("文件"), 1000)
if (n) {
logd(JSON.stringify(n))
let p = nodeAgent.parent(n)
let allc = nodeAgent.getOneChildNodeInfo(p, name("小红书"), 10000);
logd("getOneChildNodeInfo JSON " + JSON.stringify(allc))
}
}
main()
nodeAgent.child 取得单个子节点
- 取得单个子节点
- 支持版本: EC iOS 中控 5.0.0+
- @param nodeInfo NodeInfo 节点对象
- @param index – 子节点索引
- @return
{NodeInfo}
NodeInfo 对象 或者null
function main() {
let n = nodeAgent.getOneNodeInfo(name("Other").name("文件"), 1000)
if (n) {
logd(JSON.stringify(n))
let p = nodeAgent.parent(n)
let allc = nodeAgent.child(p, 0);
logd("child JSON " + JSON.stringify(allc))
}
}
main()
nodeAgent.allChildren 取得所有子节点
- 取得所有子节点
- 支持版本: EC iOS 中控 5.0.0+
- @param nodeInfo NodeInfo 节点对象
- @return
{array}
NodeInfo 节点集合
function main() {
let n = nodeAgent.getOneNodeInfo(name("Other").name("文件"), 1000)
if (n) {
logd(JSON.stringify(n))
logd(n.bounds.centerX())
logd(n.bounds.centerY())
let parentX = nodeAgent.parent(n);
logd("parent JSON " + JSON.stringify(parentX))
logd(JSON.stringify(nodeAgent.allChildren(parentX)));
}
}
main()
nodeAgent.siblings 取得所有兄弟节点
- 当前节点的所有兄弟节点
- 支持版本: EC iOS 中控 5.0.0+
- @param nodeInfo NodeInfo 节点对象
- @return
{array}
NodeInfo 节点集合
function main() {
let n = nodeAgent.getOneNodeInfo(name("Other").name("文件"), 1000)
if (n) {
logd(JSON.stringify(n))
let allc = nodeAgent.siblings(n);
logd("siblings JSON " + JSON.stringify(allc))
if (allc) {
for (let i = 0; i < allc.length; i++) {
logd("siblings " + JSON.stringify(allc[i]))
}
}
}
}
main()
nodeAgent.previousSiblings 取得前面的兄弟节点
- 在当前节点前面的兄弟节点
- 支持版本: EC iOS 中控 5.0.0+
- @param nodeInfo NodeInfo 节点对象
- @return
{array}
NodeInfo 节点集合
function main() {
let n = nodeAgent.getOneNodeInfo(name("Other").name("文件"), 1000)
if (n) {
logd(JSON.stringify(n))
let allc = nodeAgent.previousSiblings(n);
logd("previousSiblings JSON " + JSON.stringify(allc))
if (allc) {
for (let i = 0; i < allc.length; i++) {
logd("previousSiblings " + JSON.stringify(allc[i]))
}
}
}
}
main()
nodeAgent.nextSiblings 取得后面的兄弟节点
- 在当前节点后面的兄弟节点
- 支持版本: EC iOS 中控 5.0.0+
- @param nodeInfo NodeInfo 节点对象
- @return
{array}
NodeInfo 节点集合
function main() {
let n = nodeAgent.getOneNodeInfo(name("Other").name("文件"), 1000)
if (n) {
logd(JSON.stringify(n))
let allc = nodeAgent.nextSiblings(n);
logd("nextSiblings JSON " + JSON.stringify(allc))
if (allc) {
for (let i = 0; i < allc.length; i++) {
logd("nextSiblings " + JSON.stringify(allc[i]))
}
}
}
}
main()
nodeAgent.getOneChildNodeInfo 级联筛选子节点
- 在当前节点后面的兄弟节点
- 支持版本: EC iOS 中控 5.0.0+
- @param nodeInfo NodeInfo 节点对象
- @return
{NodeInfo}
NodeInfo 节点对象
function main() {
let n = nodeAgent.getOneNodeInfo(name("Other").name("文件"), 1000)
if (n) {
logd(JSON.stringify(n))
let p = nodeAgent.parent(n)
let allc = nodeAgent.getOneChildNodeInfo(p, name("小红书"), 10000);
logd("getOneChildNodeInfo JSON " + JSON.stringify(allc))
}
}
main()
nodeAgent.getChildNodeInfo 级联筛选多个子节点
- 级联筛选多个子节点
- 支持版本: EC iOS 中控 5.0.0+
- @param nodeInfo NodeInfo 节点对象
- @param selectors 节点选择器
- @param timeout 超时时间,单位毫秒
- @return
{array}
NodeInfo 节点集合
function main() {
let n = nodeAgent.getOneNodeInfo(name("Other").name("文件"), 1000)
if (n) {
logd(JSON.stringify(n))
let p = nodeAgent.parent(n)
let allc = nodeAgent.getChildNodeInfo(p, name("小红书"), 10000);
logd("getChildNodeInfo JSON " + JSON.stringify(allc))
}
}
main()
nodeAgent.lockNode 锁定节点
- 锁定节点
- 支持版本: EC iOS 中控 5.0.0+
function main() {
nodeAgent.lockNode()
for (let i = 0; i < 100; i++) {
sleep(1000)
let n = nodeAgent.getOneNodeInfo(name("Other").name("文件"), 1000)
if (n) {
logd(JSON.stringify(n))
let p = nodeAgent.parent(n)
let allc = nodeAgent.getChildNodeInfo(p, name("小红书"), 10000);
logd("getOneChildNodeInfo JSON " + JSON.stringify(allc))
} else {
logd("无节点信息")
}
}
nodeAgent.releaseNode()
}
main()
nodeAgent.releaseNode 释放节点
- 释放节点
- 支持版本: EC iOS 中控 5.0.0+
function main() {
nodeAgent.lockNode()
for (let i = 0; i < 100; i++) {
sleep(1000)
let n = nodeAgent.getOneNodeInfo(name("Other").name("文件"), 1000)
if (n) {
logd(JSON.stringify(n))
let p = nodeAgent.parent(n)
let allc = nodeAgent.getChildNodeInfo(p, name("小红书"), 10000);
logd("getOneChildNodeInfo JSON " + JSON.stringify(allc))
} else {
logd("无节点信息")
}
}
nodeAgent.releaseNode()
}
main()
nodeAgent.dumpXml 导出节点
- 导出节点
- 支持版本: EC iOS 中控 5.0.0+
- @return
{string}
节点字符串
function main() {
logd(nodeAgent.dumpXml())
}
main()