Auto.js 在控件属性缺失情况下获取控件
群里有很多新人问,各种既没有id也没有text的控件无法获取的问题.
使用环境
我们在使用Auto.js Pro进行脚本开发时经常遇到多个页面控件(甚至所有)无id无text,我一开始也很懵,直接使用click()方法又显得很low.
但他们的className通常是有的,而且会重名.
其他属性也会有不同.
一、具体操作
只用一个控件属性选取
我先说这是一种比较头铁的方法,只用一个 控件属性 来选取,通常是没必要的.
举例:
现在就仅用className获取某个具体的页面控件,一开始我想的非常麻烦,看了网上说的甚麽循环遍历要么答非所问要么含含糊糊,干脆自己试了,
其实原理类似于使用getElementsByTagName()获取DOM元素,直接用className获取到的将会是一个数组形式的值,其内部包含着与各个控件对应的对象,而操纵哪个控件,只需要指明"我需要数组的第几个元素"即可:
/* arr内包裹find()返回的所有className为"android.widget.EditText"的元素; */
var arr = className("android.widget.EditText").find()