Auto.js的微信朋友圈点赞
1.介绍
本文主要是针对Auto.js的新手用户,作为初学者的第一课,微信朋友圈点赞通常是新手入门教学最好的一课。微信界面抓取代码全面,调试稳定,学习如何操作微信界面可以很好的入手其它软件。通常我们使用Auto.js进行自动化操作时,需要通过代码来模拟手机的点击、滑动功能。微信点赞可以较好地解释这些基础代码。
2.代码介绍
在微信实现点击的操作,我们需要两步,1)找到控件的位置;2)执行点击操作
对于控件位置,有两种方法,1)通过控件特征抓取控件;2)识别像素坐标
这里结合Auto.js,使用对控件的识别(常用的特征:text、desc、id)
例如点击朋友圈text("朋友圈").findOne().parent().click()
text为识别内容,findOne为找寻text属性为朋友圈的控件,由于开发人员在开发这个控件时clickable设置为false,即不可点击,所以加上parent(),找寻它的父控件,执行点击操作click()。
这里关于find、click有一些总结:
findOne():对于包含多个相同特征的控件,只返回第一个控件
findOnce():只搜索一次
find():返回当前页面所有的具备相同特征的控件
untilFind():直到找完包含该特征的控件,不停止搜索
click():单击控件,默认时间为150ms
press():单机控件,可设置点击时间,也可以设置坐标形式为press(x,y)
掌握了基本的搜索控件、执行点击、滑动屏幕scrollForward():
的操作,我们就可以练习操作手机的脚本了
app.launchApp("微信")//启动微信app
sleep(1000)//等待反应时间
text("发现").findOne().parent().click()//点击发现
sleep(1000)
text("朋友圈").findOne().parent().click()//点击朋友圈
sleep(1000)
启动手机的微信,这里的sleep()可以根据你手机的反应速度设置,反应慢就设置时间久一些,可以视情况删去。下面我们编写一下所要用到的函数,屏幕滑动、尝试点赞和多个控件点击三个函数,方便我们逐个解决问题,并运用到循环中。
function scroll(){
className("ListView").scrollForward();
}//listView为Auto.js抓取的主体框的className
很简单明了,就是设置滑动屏幕的函数
…
function tryFav(btn){
btn.click();
sleep(1000);
if(!click("赞")){
btn.click();
}
}
点赞的函数编写的时候碰上了难题,刚开始是简单的想着找到父控件-点击-点赞就可以了,但实际上页面滚动时会遇上点过赞的朋友圈,这里程序就会卡住,加入if(!click(“赞”))进行一个判别
function dianzan() {
sleep(1000)
var asm=desc("评论").find();
if(!asm.empty()){
asm.forEach(item => {
tryFav(item);
sleep(1000);
})
}
}
有必要解释一下这里的asm.forEach(),我们知道asm返回的是当前页面desc为评论的所有控件,我们需要逐一对其进行操作,forEach()函数就是一个很方便的循环函数,对asm的每一个控件执行操作
编写完所需要的函数后,可以进行逐一的调试,例如直接在命令行最后一行加上 dianzan();
,调试没问题后将函数用while循环组装,即可完成脚本的编写。
while(true){
dianzan();
scroll();
}