前言
热爱社交的张三每天忙于社交没空看网课,在夜深人静的时候张三打开了学习通看着眼花缭乱的网课差点直接昏厥,他随手点开了一节网课看了短短几分钟就感到枯燥无聊,心想如果要是有个自动刷课的脚本该多好!
正文
初学Autojs实在不知道能写啥有用的脚本。
什么是Autojs?
简单讲就是无需root就可执行脚本实现手机自动化操作。
一、打开学习通到要刷的网课页面
我们通过寻找任务点图标来判断任务数量
任务.jpg
二、判断是否跳转到视频页面
通过text()查找文本方式查找来判断页面是否处于视频任务页面
三、判断题答题
通过文本查询来判断是否处于判断题页面和答题情况
四、视频进度
通过文本查询来判断视频是否结束。
进度条.jpg
代码
function answer() { //判断题答题功能
while (true) {
if (text("提交").findOne()) { //寻找提交判断是否处于判断题界面
textContains("B、").findOne().parent().click() //上来先选B
text("提交").findOne().click();
sleep(1000);
if (text("回答错误").findOne()) { //判断答题是否正确如果错误则选择A
textContains("A、").findOne().parent().click()
text("提交").findOne().click();
if (text("回答正确").findOne()) { //判断回答是否正确正确则点击继续
text("继续").findOne().click();
}
}
else {
text("继续").findOne().click();
}
}
}
}
threads.start(answer) //启用线程
while (true) {
try {
var set = id("com.chaoxing.mobile:id/tv_icon").find() //寻找任务
var num = set.size();
for (var i = 0; i < num; i++) {
var test = id("com.chaoxing.mobile:id/tv_icon").find()
test.get(i).parent().parent().parent().parent().click()
text("视频").waitFor(); //视频页面
sleep(1000);
text("视频").findOne().parent().click();
text("play").waitFor();
if (text('任务点已完成').findOnce()) { //判断视频是否完成如果完成则选择下个任务
toast("任务点已完成")
id("com.chaoxing.mobile:id/toolbar_left_action").findOne().click();
text("搜索").waitFor();
sleep(1000);
}
else {
text("play").findOne().click(); //未完成则播放视频
sleep(4000);
while (true) {
var time = id("com.chaoxing.mobile:id/land_total_time").findOne().text() //视频总时长
var endtime = id("com.chaoxing.mobile:id/land_current_time").findOne().text() //视频已播时长
if (endtime == time) { //判断是否相等相等时任务已完成退出循环进入下个任务
id("com.chaoxing.mobile:id/back").findOne().click();
break
}
else {
continue;
}
}
text("视频").waitFor();
id("com.chaoxing.mobile:id/toolbar_left_action").findOne().click(); //是否返回任务点界面
text("搜索").waitFor();
sleep(1000);
}
}
id("com.chaoxing.mobile:id/rv_knowledge").scrollForward(); // 翻页
}
catch (e) {
continue;
}
}