auto.js简单实现微信操作

[亡魂溺海] 提交于 2019-12-31 16:18:06

前提

使用auto.js+mitmproxy抓取微信公众号信息

条件

安卓机+auto.js软件
高版本的安卓机需要修改一下证书的问题,不然抓不到微信的包

代码

1.开启auto.js服务
通过使用Vs Code开启auto.js服务,并将手机auto.js连接到电脑,并且开启无障碍模式
2.编写脚本
打开微信,自动搜索关键词,搜索,自动下滑至最底端

//点击发现
// click("返现");
id("dkb").className("android.widget.TextView").text("发现").findOne().parent().click()
sleep(100);
// print("132");
//点击搜一搜
click(500,750);
sleep(200);

// 店家搜索框
id("m7").findOne().click();
sleep(2000);

citys = "湖州、绍兴、宁波、嘉兴、丽水、台州、温州、金华、衢州、舟山"
 var city_list = citys.split("、")
for (var ki in city_list){
    var kw = city_list[ki]
    // 输入关键字
    id("m7").findOnce().click();
    className("android.widget.EditText").findOne().setText(kw);
    sleep(100);
    click(1065,2320);
    sleep(3000);

    // // // 公众号
    text("公众号").findOnce().click();
    sleep(2000);

    // 循环下拉
    for(i=0;i<1000;i++){
        swipe(360,1980,362,420,1000)
        sleep(100);

        if(text("没有更多的搜索结果").findOnce()!=null){
            console.log("找到了");
            toast("zhaodaol");
            console.log("kw遍历完"+i.toString());
            // 写入文件
            parse_json(kw);
            break;
        // };
        }else{
            console.log("123");
            console.log(i);
            toast(i);
        };
    };
}

parse_json函数,统计当前页面所有公众号名称并写入文件


function parse_json(kw){
    var c = id("om").id("boe").findOnce().child(0).child(0).child(1).child(1).children().splice(3);
    if(c != null){
        // toast(c);
    }else{
        toast("没找到╭(╯^╰)╮");
    }
    var kw_list = []
    c.forEach(
        function(childd,index){
            // console.log(index);
            // console.log(childd.bounds())
            try{
                if (childd.child(0).child(2) != null){

                    console.log(childd.child(0).child(2).childCount());
                    var view = childd.child(0).child(2).find(className('android.view.View'))[1];

                    // console.log("view的长度");
                    // console.log(childd.child(0).child(2).findOne(className('android.view.View')).text());

                    // console.log(view.text());
                    // console.log("上面是名字");

                    // console.log(childd.child(0).child(2).child(1).text())

                    kw_list.push(view.text());
                };
                // toast(childd.child(0).chid(2).child(1).text())
                // sleep(100)
            }catch(e){
                console.log("报错了");
                console.log(e);
            };
        }
    );
    // 写进文件夹
    // var text = JSON.stringify({aa:kw_list})
    var text = kw_list.join("\n");
    files.write("/sdcard/auto_gzh/"+kw+".txt", text);
}

总结

auto.js相比于appium更加轻量、稳定,无需依赖任何环境,无需root,开发起来极其方便,随时可测试,还可以打包成apk,是个自动化工具的不错选择。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!