AutoJs自动化脚本的基础我认为就是部局范围次分析。我在基础篇中提及过,每个应用App(非游戏)和网页类似都是一个一个控件构成的,所以找到控件进行合理的操作是非常必要的。我接下来讲解就使用实际的app作为示例给大家看看。
先定义一下需求:我们要实现自动刷淘最热点的小视频。需求非常简单,不过这里有好多需求的坑,比如滑动次数、滑动时间间隔。咱这个文章不是需求评审文件不去理会那个问题。直接看实际的。上代码。
首先打开淘最热点App:
解释一下,第一句开启无障碍,我在第一篇也说了类似于开启ROOT权限一样的东东。如果未开启软件会跳转到开启权限的页面。
第二句就是滑动屏幕次数,我用的默认1000次,这个有点多。
第三句就是关键的一句,打开App。
第四句显示控制台,这个也需求有悬浮窗权限的。
第五句是延迟10秒,目的是等待Splash的时间,一般Splash时间都是5秒,但是网速和手机的速度都需要考虑,所以这里时间多了点。
其次打开淘最热点App,使用Autojs进行部局范围次分析。下图示例:
点击中间的按钮选择部局范围分析。
点击后形成如下界面:
这个时候我们的目标是视频2个字,点击视频,哈哈不太好点。点击完成后就需要动脑分析了,不过也可以让AutoJs生成代码。
点击查看控件信息。
弹出如上页面其中className非常有用。一会在说,手指向下滑动。查看下面有用的信息。
Id和text一般是我们来查询的,尤其是ID,text也可以,有的时候还有desc。查找这个控件并进行点击的代码如下:
解释一下,第7行判断控件Id是main_video_refresh_tv元素是否存在。
第8行是注释说明,为啥事宜点击屏幕的click而不是控件内置的click。
第9行控件的点击事件执行,在这个部局中click是不好用的。
第10行是将控件在部局中的范围找到,也就是控件所在的坐标。
第11行是点击这个方位的坐标。
好了,到这里一个App从启动到使用元素层次分析点击控件就完成了。但是文章没写完,我做了几十个App的部局分析了,发现一个小规律。在判断的人前面增加className查找几率非常高几乎是100%,而不写失败的几率非常高至少十分之一,呵呵我也不知道为啥。所以我们的代码应该这样写。
这样写几率基本是100%。啥基本是100%,也就是说还不是100%。进过N久的编码我还发现如果id和text同时存在的时候我们最好使用text,因为id有的App是变化的….。抖音极速版就是变化的。所以代码还得改一下。
嗯嗯嗯这回可以了….
不过你的UI部局上可别有2个叫视频