Autoxjs常用的函数
- auto.waitFor() 表示直到检查该应用开启无障碍后才执行其后面的代码,否则一直卡在这里,一般放到脚本的第一行
- launchApp() 可以打开对应应用,由于不同手机响应速度不同,本代码让它睡眠3s。
- 定位组件是autojs的最常见的操作,这很类似前端的定位dom元素。在任何点击之前都需要找到对应的组件,这不同于点击某像素位置,点击组件更能适配不同分辨率的手机。
- auto.js 中通过各种条件选取到的控件称为UiSelector。那么筛选条件是如何确定呢?打开Auto.js应用的悬浮窗,在喵铺主页,点击Auto.js悬浮窗后选择出现的蓝色按钮,点击布局范围分析后选择领喵币按钮查看控件信息,你就能看到如图2所示的信息。
- click() 表示点击该元素。
- toast() 表示展示一个消息框。
- gesture 是指屏幕滑动操作,这是本文唯一涉及屏幕像素的语句。gesture(duration, [x1, y1], [x2, y2]表示用duration的时间,从(x1,y1)点滑到(x2,y2)点,代码中表示如图用1s从黄点滑向红点,故是上滑操作浏览广告。
- back() 模拟返回键返回值任务栏页面。
Autoxjs查找控件的基本思路
- depth-desc-id-classname等控件的常规的唯一属性
- findone.parent().child(xx)等控件的父子依存顺序关系
- 最后实在无法确定可用坐标法bounds,click(x,y)操作控件
Autoxjs查找定位方式
1、选择器筛选条件:组件的大多数属性都可以筛选。通过链式组合调用可以定位到到元素.
//关闭任务栏按钮X
className("android.widget.Button").depth(18).indexInParent(1).findOnce();
2、定位选择器:findOnce()表示找到第一个满足条件的控件,找不到返回null;另外还有findOne(),findOne(time)等方法。findOne()如果没找到匹配的组件会一直找,直至所描述的控件出现为止,故该函数不会返回null,找不到可能会卡在这里,所以谨慎使用。
3、click():当定位的元素的clickable属性为true时,才可以点击,当某控件的clickable为false,那说明此控件不能点,可能是需要点击它的子/父控件。