文章目录
- auto.js开发文档
- 安装total control
- 在手机端安装auto.js apk
- 安装vscode
- 短信多条发送
- QQ点赞
- 微信点赞
- 健康日报填写
- 叠猫猫
auto.js开发文档
点击学习
安装total control
total control 用于手机投屏在电脑屏幕上
在手机端安装auto.js apk
链接:https://pan.baidu.com/s/11aYh0vy4d-X9bFJtCse5rQ
提取码:life
复制这段内容后打开百度网盘手机App,操作更方便哦
安装vscode
(1)安装完成后,在商店内输入chinese,选择中文安装,快捷键 ctrl+shirt+p 输入configure 选择zh-ch,重启即可
(2)在商店输入 hyb1996,选择第一个免费版的
(3)快捷键 ctrl+shirt+p 输入auto.js server running
(4)快捷键 ctrl+shirt+p 输入auto.js start server
(8)打开手机端auto.js app 点做上讲选择连接电脑。
(6)输入电脑端ip(记住一定要在一个局域网上,比如手机和电脑连的WIFI是同一个)
短信多条发送
while(true){
var 文本框 = id("input").findOne();
文本框.setText("your name");
var 发送 = id("fun_btn").findOne();
发送.click()
}
QQ点赞
"auto";function 下滑(){className("AbsListView").scrollable().scrollForward();
}function 赞(){className("ImageView").desc("赞").click();
}function 显示更多(){for(let i = 0; i < 2;i++){click("显示更多");}
}toast("请打开自己的资料页,点击点赞图标");
sleep(100);while(notStopped()){for(let i = 0; i < 10; i++){赞();}显示更多();下滑();
}
微信点赞
while(true){dianzan();
}// 点赞当前页面的动态
function dianzan(){// 这里是需找到可以滚动的控件:ListView,className是不会改变的,这样写出来的程序会比较稳定var scroll=className("ListView").findOne();// 子控件var scroll_thing=scroll.children();// 遍历子控件scroll_thing.forEach((item,position)=>{var comment = item.findOne(desc("评论"));if(comment){comment.click();sleep(200)// 根据当前的选择器所确定的筛选条件,对屏幕上的控件进行搜索,如果找到符合条件的控件则返回该控件;否则返回nullclick("赞")sleep(500);}});// 直接调用向下滚动的方法scrollDown();sleep(1000);
}
健康日报填写
// auto;
// var packageName = getPackageName("微信");
// openAppSetting(packageName);
// var close = className("android.widget.Button").id("right_button").findOne().click();
// log(close);
// sleep(100);
// var cl2 = className("android.widget.Button").text("强行停止").findOne();
// console.log(cl2);
// cl2.click();
// sleep(200);
var s = "学生工作在线";
launchApp("微信");
sleep(3000)// var sousuo = packageName("com.tencent.mm").id("f8y").findOne(2000);//进行搜索var sousuo = className("android.widget.ImageView").id("f8y").findOne(2000);//进行搜索
log(sousuo);
if(sousuo!=null){click(sousuo.bounds().centerX(),sousuo.bounds().centerY());
}sleep(2000);
setText("0",s);
sleep(2000)var nyist = className("android.widget.TextView").text(s).findOnce(0);log(nyist);
if(nyist==null) exit();click(nyist.bounds().centerX(),nyist.bounds().centerY());
sleep(500);
var jiankang = className("android.widget.TextView").text("晨午日报").findOne(2000);
console.log(jiankang);
click(jiankang.bounds().centerX(),jiankang.bounds().centerY());
sleep(500);
var ribao = className("android.widget.TextView").text("健康日报").findOne(2000);
console.log(ribao);
click(ribao.bounds().centerX(),ribao.bounds().centerY());sleep(2000);
var ribao = className("android.widget.RadioButton").text("在校").findOne(2000);
console.log(ribao);ribao.click();
log(device.width);
log(device.height)
swipe(300,1000,300,1,1000);
swipe(300,1000,300,1,1000);
// var sumit =className("android.view.View").id("submit").findOne(2000);
var sumit =className("android.view.View").text("提交").findOne(2000);
log(sumit);
if(sumit==null){exit();
}
click(sumit.bounds().centerX(),sumit.bounds().centerY());
sleep(500);
click("确定");home();
叠猫猫
/*** 淘宝+京东双十一活动脚本* 支持淘宝\支付宝\京东任务自动执行* * Author: Hyue418* Date: 2020/10/21* Time: 21:16* Versions: 2.1.0* Github: https://github.com/hyue418*/try {auto();
} catch (error) {toast("请手动开启无障碍并授权给Auto.js");sleep(2000);exit();
}//初始化参数
versions = 'V2.1.0';
speed = 1;
float = 1.25;
patNum = 0;
swipeTips = "滑啊滑啊滑啊滑";
taskChooseList = ["淘宝赚喵币", "淘宝拍猫猫", "支付宝赚喵币", "京东全民营业"];
taobaoActivityData = "taobao://pages.tmall.com/wow/z/hdwk/act-20201111/index";
activityActivityData = "alipays://platformapi/startapp?appId=68687502";height = device.height;
width = device.width;
setScreenMetrics(width, height);console.show();
log("淘宝+京东双十一活动脚本" + versions + "\n");
log("脚本执行期间请勿手动点击按钮");
log("=========================");
log("GitHub: https://github.com/hyue418");
log("Powered By Hyue418");
log("=========================");
alert("【淘宝+京东双十一活动脚本 " + versions + "】", "脚本执行过程请勿手动点击按钮,否则脚本执行可能会错乱,导致任务失败\n\n执行淘宝任务时请确保使用低版本淘宝(V9.5及以下),否则无法获取奖励\n\n最新版脚本请到GitHub获取\nGitHub: https://github.com/hyue418\n\nPowered By Hyue418");
//开始执行任务弹窗
taskChoose();
log("GitHub: https://github.com/hyue418");
log("Powered By Hyue418");
alert("任务已完成", "所有任务貌似都做完啦!\n若仍有任务请重新运行噢!\n\nGitHub: https://github.com/hyue418\nPowered By Hyue418");/*** 任务选择*/
function taskChoose() {var options = dialogs.multiChoice("请选择需要执行的任务", taskChooseList);if (options == '') {toastLog("脚本已退出");exit();}//选中拍猫猫时弹出次数选择if (options.indexOf(1) > -1) {var frequencyOptions = [10, 30, 50, 100, 200];var i = dialogs.select("请选择拍猫猫次数",frequencyOptions);if (i == -1) {toastLog("脚本已退出");exit();}//拍猫次数加随机数,向下取整patNum = Math.floor(ramdomByFloat(frequencyOptions[i]));toastLog("选择拍猫猫" + frequencyOptions[i] + "次,加随机数至" + patNum + "次");}runOptions(options);
}/*** 执行选中任务* @param options 选项数组*/
function runOptions(options) {options.forEach(option => {switch (option) {case 0://执行淘宝任务var taskList = ['签到', '领取', '去浏览', '去搜索', '去观看', '领取奖励', '去完成'];log("=====开始执行" + taskChooseList[option] + "=====");runTaobao("手机淘宝", taobaoActivityData, taskList);break;case 1://执行拍猫猫任务log("=====开始执行" + taskChooseList[option] + "=====");options.indexOf(0) > -1 ? patCat(patNum, 1) : patCat(patNum, 2);break;case 2://执行支付宝任务var taskList = ['签到', '逛一逛'];log("=====开始执行" + taskChooseList[option] + "=====");activityData = "alipays://platformapi/startapp?appId=68687502";runTaobao("支付宝", activityActivityData, taskList);break;case 3://执行京东任务var taskList = ['签到', '去完成'];log("=====开始执行" + taskChooseList[option] + "=====");runJd(taskList);break;default:break;}});
}/*** 淘宝活动脚本,兼容淘宝&支付宝* @param appName * @param activityData * @param taskList */
function runTaobao(appName, activityData, taskList) {var i = j = 0;toastLog("打开【" + appName + "】活动页");app.startActivity({action: "VIEW",data: activityData})randomSleep(1000 * speed);className("android.widget.Button").text("赚喵币").waitFor()randomSleep(1000 * speed);if (!textContains("累计任务奖励").exists()) {clickContent("赚喵币");}randomSleep(1500 * speed);if (className("android.widget.Button").text("领取奖励").exists()) {clickContent("领取奖励");randomSleep(200 * speed);log("领取奖励成功");}randomSleep(1500 * speed);taskList.forEach(task => {while (textContains(task).exists()) {var button = text(task).findOnce(j);if (button == null) {break;}log("开始做第" + (i + 1) + "次任务");switch (task) {case '去搜索':case '逛一逛':case '去完成':log("开始【" + task + "】任务")clickButton(button);randomSleep(3000 * speed);if (textContains("复制链接").exists()) {log("跳过分享任务");j++;i++;back();sleep(200 * speed);back();break;}if (textContains("淘宝特价版送红包").exists()) {log("跳过打开APP任务");j++;i++;back();break;}toast(swipeTips);randomSwipe();randomSleep(5000 * speed);toast(swipeTips);randomSwipe();randomSleep(6000 * speed);toast(swipeTips);randomSwipe();descContains("任务完成").findOne(8000 * speed);randomSleep(1000 * speed);i++;log("已完成");back();//支付宝任务返回后需要点击确认按钮if (appName == '支付宝') {randomSleep(2000 * speed);clickContent('好的,我知道了');}break;case '去观看':case '去浏览':log("开始【" + task + "】任务")randomSleep(500 * speed);clickButton(button);randomSleep(3000 * speed);if (!textContains("跟主播聊").exists() || !textContains("赚金币").exists()) {toast(swipeTips);randomSwipe();randomSleep(3500 * speed);toast(swipeTips);randomSwipe();randomSleep(5500 * speed);toast(swipeTips);randomSwipe();} else {randomSleep(15000 * speed);}textContains("全部完成").findOne(8000 * speed);randomSleep(1000 * speed);i++;log("已完成")back();break;case '领取奖励':case '签到':case '领取':clickButton(button);randomSleep(1500 * speed);log("【" + task + "】成功")//支付宝任务签到后需要点击确认按钮if (appName == '支付宝') {clickContent('好的,我知道了');}break;default:log("跳过")break;}randomSleep(2000 * speed);}});toastLog("【" + appName + "】任务已完成");log("=========================");
}/*** 京东活动脚本*/
function runJd(taskList) {var i = j = 0;var activityButton = "浮层活动";launch("com.jingdong.app.mall");randomSleep(2000 * speed);if (!descContains(activityButton).exists()) {alert("温馨提示", "首页没有找到【全民营业】活动入口浮层\n请手动打开活动页,进入后脚本会自动执行");} else {clickContent(activityButton, "desc");log("正在打开【京东】活动页");randomSleep(300 * speed);//部分账号首页的活动浮层默认是收起状态,再次点击(有时候会点击失败,所以用while)while (descContains(activityButton).exists()) {clickContent(activityButton, "desc");randomSleep(300 * speed);}toastLog("若页面有弹窗,请手动关闭");randomSleep(5000 * speed);}text("领金币").waitFor();clickContent("领金币");log("展开任务列表");randomSleep(1000 * speed);//未打开任务列表则再次尝试点击while (!textContains("去完成").exists() && !textContains("已完成").exists()) {clickContent("领金币");randomSleep(300 * speed);}taskList.forEach(task => {while (textContains(task).exists()) {var button = text(task).findOnce(j);if (button == null) {break;}log("开始做第" + (i + 1) + "次任务");switch (task) {case '签到':jdClickButton(button);log("签到成功");i++;randomSleep(1000 * speed);break;case '去完成':jdClickButton(button);randomSleep(3000 * speed);if (textContains("口令").exists() && textContains("取消").exists()) {log("跳过助力任务");j++;i++;clickContent("取消");randomSleep(1000 * speed);break;}//若未点击成功,则再次点击while (textContains(task).exists()) {jdClickButton(button);randomSleep(300 * speed);}if (textContains("任意浏览").exists() || textContains("任意加购").exists() || textContains("联合开卡").exists() || textContains("商圈红包").exists()) {log("跳过任务");j++;i++;back();randomSleep(500 * speed);break;}if (textContains("宠汪汪").exists() || textContains("京喜财富岛").exists() || textContains("天天加速").exists()) {randomSleep(10000 * speed);} else {randomSleep(2500 * speed);toast(swipeTips);randomSwipe();randomSleep(2200 * speed);toast(swipeTips);randomSwipe();randomSleep(3500 * speed);toast(swipeTips);randomSwipe();}descContains("获得").findOne(8000 * speed);randomSleep(500 * speed);i++;log("已完成");back();randomSleep(4000 * speed);break;default:log("跳过")break;}}});toastLog("【京东】任务已完成");log("=========================");
}/*** 拍猫猫任务* @param num 拍猫猫次数* @param type 任务执行类型:1当前页面执行,2打开淘宝APP执行*/
function patCat(num, type) {if (type == 1) {clickContent("关闭");} else if (type == 2) {toastLog("打开【淘宝】活动页");app.startActivity({action: "VIEW",data: taobaoActivityData})}log("开始【拍猫猫】");if (num == 0) {return true;}toastLog("正在疯狂撸猫中...");for (var i = 0; i < num; i++) {clickContent("我的猫,点击撸猫", "text", 100);}toastLog("【拍猫猫】任务已完成,共拍猫" + num + "次");log("=========================");
}/*** 通过文字内容模拟点击按钮* @param content 按钮文字内容* @param type 点击类型,默认为text点击* @param sleepTime 等待时间,默认1000毫秒*/
function clickContent(content, type, sleepTime) {var type = type || "text";var sleepTime = sleepTime || 1000;sleep(sleepTime * float * speed);if (type == "text") {var button = text(content).findOne();} else {var button = desc(content).findOne();}clickButton(button);return button;
}/*** 根据控件的坐标范围随机模拟点击* @param button */
function clickButton(button) {var bounds = button.bounds();press(random(bounds.left, bounds.right), random(bounds.top, bounds.bottom), random(50, 350));
}/*** 根据控件的坐标范围随机模拟点击(京东用)* 京东任务按钮有圆角,通用的随机点击方法容易点出圆角外导致点击失效,此处做修正* @param button */
function jdClickButton(button) {var bounds = button.bounds();var width = bounds.right - bounds.left;press(random(bounds.left + width / 5, bounds.right - width / 5), random(bounds.top, bounds.bottom), random(50, 350));
}/*** 根据float倍数sleep随机时间* @param time */
function randomSleep(time) {sleep(ramdomByFloat(time));
}/*** 随机滑动*/
function randomSwipe() {smlMove(ramdomByFloat(width / 2), ramdomByFloat(height / 1.5), ramdomByFloat(width / 2), ramdomByFloat(height / 4), ramdomByFloat(800));
}/*** 范围随机数生成* @param min * @param max */
function random(min, max) {return Math.round(Math.random() * (max - min)) + min;
}/*** 根据float生成随机数* @param number */
function ramdomByFloat(number) {return random(number, number * float);
}/*** 仿真随机带曲线滑动 * @param qx 起点x轴坐标* @param qy 起点y轴坐标* @param zx 终点x轴坐标* @param zy 终点y轴坐标* @param time 滑动时间,毫秒*/
function smlMove(qx, qy, zx, zy, time) {var xxy = [time];var point = [];var dx0 = {"x": qx,"y": qy};var dx1 = {"x": random(qx - 100, qx + 100),"y": random(qy, qy + 50)};var dx2 = {"x": random(zx - 100, zx + 100),"y": random(zy, zy + 50),};var dx3 = {"x": zx,"y": zy};for (var i = 0; i < 4; i++) {eval("point.push(dx" + i + ")");};for (let i = 0; i < 1; i += 0.08) {xxyy = [parseInt(bezierCurves(point, i).x), parseInt(bezierCurves(point, i).y)];xxy.push(xxyy);}gesture.apply(null, xxy);
};function bezierCurves(cp, t) {cx = 3.0 * (cp[1].x - cp[0].x);bx = 3.0 * (cp[2].x - cp[1].x) - cx;ax = cp[3].x - cp[0].x - cx - bx;cy = 3.0 * (cp[1].y - cp[0].y);by = 3.0 * (cp[2].y - cp[1].y) - cy;ay = cp[3].y - cp[0].y - cy - by;tSquared = t * t;tCubed = tSquared * t;result = {"x": 0,"y": 0};result.x = (ax * tCubed) + (bx * tSquared) + (cx * t) + cp[0].x;result.y = (ay * tCubed) + (by * tSquared) + (cy * t) + cp[0].y;return result;
};