首先,通过
className("android.widget.Image").visibleToUser().find()
方法找到所有可见的android.widget.Image
类型的控件,并将结果保存在more_btn
变量中。接下来,判断
more_btn
是否存在。如果存在,则执行以下操作:初始化变量
maxLeft
和minTop
分别为最小和最大的整数值,初始化变量maxChild
为null
。遍历
more_btn
数组中的每个控件,对每个控件进行以下判断:- 判断控件的长方形宽度和高度之差是否不超过10,并且宽度是否不超过100。
- 如果满足上述条件,则进一步判断控件的左边界是否大于
maxLeft
,且上边界是否小于minTop
。 - 如果满足上述条件,则更新
maxLeft
为当前控件的左边界,更新minTop
为当前控件的上边界,更新maxChild
为当前控件。
如果存在满足条件的
maxChild
,则执行以下操作:- 输出屏幕的宽度和高度。
- 判断
maxChild
的左边界是否小于屏幕宽度的三分之二,并且上边界是否小于屏幕高度的一半。 - 如果满足上述条件,则输出 "排查到目标坐标点",并调用
节点坐标点击(maxChild)
方法。 - 否则输出 "怀疑坐标点不准确"。
如果不存在满足条件的
maxChild
,则输出 "没有找到控件信息"。
let more_btn = className("android.widget.Image").visibleToUser().find()
// let more_btn = className("android.widget.ImageView").visibleToUser().find()
log(more_btn.length)
if (more_btn) {
let maxLeft = Number.MIN_SAFE_INTEGER;
let minTop = Number.MAX_SAFE_INTEGER;
let maxChild = null;
more_btn.forEach(function (child, index) {
// log("数量:" + index)
// log("控件信息" + child)
// log("控件信息左边:" + child.bounds().left)
// log("控件信息上边:" + child.bounds().top)
// log("控件信息长方形宽度:" + child.bounds().width())
// log("控件信息长方形高度:" + child.bounds().height())
if (Math.abs(child.bounds().width() - child.bounds().height()) <= 10 && child.bounds().width() <= 100) { //判断其长方形的宽高差是否不超过10
// console.log("宽高相差不超过10 且宽度不超过100");
if (child.bounds().left > maxLeft && child.bounds().top < minTop) { //循环出“控件信息左边”数值最大的并且是“控件信息上边”数值最小的
maxLeft = child.bounds().left;
minTop = child.bounds().top;
maxChild = child;
}
sleep(100)
} else {
// console.log("宽高相差超过10,或宽度超过100");
}
sleep(100)
})
if (maxChild) {
// log("控件信息左边最大且上边最小的是:" + maxChild)
// log("控件信息左边:" + maxChild.bounds().left)
// log("控件信息上边:" + maxChild.bounds().top)
// log("控件信息长方形宽度:" + maxChild.bounds().width())
// log("控件信息长方形高度:" + maxChild.bounds().height())
log(Math.abs(device.width - (device.width / 3))) //屏幕的宽度
log((device.height / 2))//屏幕的高度
if (Math.abs(device.width - (device.width / 3))< maxChild.bounds().left && (device.height / 2) > maxChild.bounds().top) {
log("排查到目标坐标点")
节点坐标点击(maxChild)
}else{
log("怀疑坐标点不准确")
}
} else {
log("没有找到控件信息")
}
}