auto.js的学习(微信朋友圈点赞实现)


流程实现

运行环境: auto.js4.00 Beta(需要这个版本的话评论或者私聊我)

1.启动无障碍服务

auto.waitFor();

auto.waitFor()

检查无障碍服务是否已经启用,如果没有启用则跳转到无障碍服务启用界面,并等待无障碍服务启动;当无障碍服务启动后脚本会继续运行。


2.进入朋友圈页面的过程

launchApp("微信");//启动微信,参数就是App的全名
text("发现").findOne().parent().click();
text("朋友圈").findOne().parent().click();
sleep(1000);
  1. 布局范围分析
  2. 找到发现的控件,text属性:发现,clickable属性市false,不可点击,则找到他的上一级控件(父控件),属性是可点击的
  3. 朋友圈的点击同理
  4. sleep 1秒钟,等待页面加载完

auto.js的学习(微信朋友圈点赞实现)_第1张图片


3.单个点赞按钮的点击

desc()

  1. 布局分析,对能够点开 ’赞‘ 和 ’评论‘ 控件的按钮布局分析,可以根据desc属性锁定
  2. ’赞‘ 的流程和 ’发现‘ 控件一样,找他的父组件
    auto.js的学习(微信朋友圈点赞实现)_第2张图片
 text("赞").findOne().parent().click();

#### 3.滑动控件集合的查找 [find()](https://hyb1996.github.io/AutoJs-Docs/#/widgetsBasedAutomation?id=uiselectorfind)
  1. 每一个滑动组件都包含 desc属性时 “评论” 的描述,根据这一点可以找到当前页面的所有滑动控件,调用 find()
    ,返回一个数组。
comment = desc("评论").find();
  1. 遍历该数组,每循环一次,判断 “赞” 的控件是否存在,存在则点击,否则进行下次循环
comment.forEach(item => {
                console.log("找到一个评论控件");
                item.click();
               
            })
if (text("赞").exists()) {
           text("赞").findOne().parent().click();
                }

4.将代码放入大的循环体,滑动成功,执行

scrollForward()


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());
}



你可能感兴趣的:(前端)