流程实现
运行环境: auto.js4.00 Beta(需要这个版本的话评论或者私聊我)
1.启动无障碍服务
auto.waitFor();
检查无障碍服务是否已经启用,如果没有启用则跳转到无障碍服务启用界面,并等待无障碍服务启动;当无障碍服务启动后脚本会继续运行。
2.进入朋友圈页面的过程
launchApp("微信");//启动微信,参数就是App的全名
text("发现").findOne().parent().click();
text("朋友圈").findOne().parent().click();
sleep(1000);
- 布局范围分析
- 找到发现的控件,text属性:发现,clickable属性市false,不可点击,则找到他的上一级控件(父控件),属性是可点击的
- 朋友圈的点击同理
- sleep 1秒钟,等待页面加载完
3.单个点赞按钮的点击
- 布局分析,对能够点开 ’赞‘ 和 ’评论‘ 控件的按钮布局分析,可以根据desc属性锁定
- ’赞‘ 的流程和 ’发现‘ 控件一样,找他的父组件
text("赞").findOne().parent().click();
#### 3.滑动控件集合的查找 [find()](https://hyb1996.github.io/AutoJs-Docs/#/widgetsBasedAutomation?id=uiselectorfind)
- 每一个滑动组件都包含 desc属性时 “评论” 的描述,根据这一点可以找到当前页面的所有滑动控件,调用 find()
,返回一个数组。
comment = desc("评论").find();
- 遍历该数组,每循环一次,判断 “赞” 的控件是否存在,存在则点击,否则进行下次循环
comment.forEach(item => {
console.log("找到一个评论控件");
item.click();
})
if (text("赞").exists()) {
text("赞").findOne().parent().click();
}
4.将代码放入大的循环体,滑动成功,执行
5.整体代码
auto.waitFor();
var sum = 0;
console.show();
launchApp("微信");//启动微信
text("发现").findOne().parent().click();
text("朋友圈").findOne().parent().click();
sleep(1000);
scoll();//调用执行方法
function scoll() {
do {
sleep(2000);//暂停2秒 等页面滑动执行完成
//当前页面逻辑
comment = desc("评论").find();
if (!comment.empty()) {
console.log("找到评论集合了");
comment.forEach(item => {
console.log("找到一个评论框");
var b = item.click();
console.log(b ? "点击评论成功" : "点击评论失败");
sleep(1000);
if (className("android.widget.TextView").text("赞").exists()) {
className("android.widget.TextView").text("赞").findOne().parent().click();
sleep(1000);
sum++;
console.info("已赞个数:" + sum);
}
})
}
} while (className("android.widget.ListView")
.findOne().scrollForward());
}