4 changed files with 501 additions and 0 deletions
@ -0,0 +1,56 @@ |
|||
start(); |
|||
|
|||
|
|||
function start() { |
|||
auto.waitFor() |
|||
var appName = "com.jingdong.app.mall"; |
|||
if (launch(appName)) { |
|||
console.info("启动中青看点"); |
|||
} |
|||
console.show(); |
|||
} |
|||
|
|||
/** |
|||
* 点击 |
|||
* @param {横坐标} x |
|||
* @param {纵坐标} y |
|||
*/ |
|||
function randomClick(x, y) { |
|||
var rx = random(0, 5); |
|||
var ry = random(0, 5); |
|||
|
|||
click(x + rx, y + ry); |
|||
sleep(2000); |
|||
return true; |
|||
} |
|||
|
|||
auto(); |
|||
sleep(1000); |
|||
console.show(); |
|||
for (var i = 1; i < 500; i++) { |
|||
sleep(1000); |
|||
console.log("下滑!") |
|||
gesture(400, [520, 1550], [520, 450]); |
|||
sleep(1000); |
|||
var youth = id("ah5").className("android.widget.TextView").findOnce(1); |
|||
sleep(200); |
|||
if (youth == undefined) |
|||
youth = id("a03").className("android.widget.LinearLayout").findOnce(1); |
|||
if (youth == undefined) { |
|||
console.log(i, "未找到!") |
|||
continue; |
|||
} |
|||
try { |
|||
|
|||
console.log(i, youth.text()); |
|||
var youok = youth.bounds(); |
|||
var a = youok.centerX(); |
|||
var b = youok.centerY(); |
|||
click(a, b); |
|||
sleep(1000); |
|||
back(); |
|||
} catch (error) { |
|||
|
|||
} |
|||
|
|||
} |
@ -0,0 +1,238 @@ |
|||
var allTasks = ['实时剧情', '朵朵浪花', '闪光热点', '阳光生活', '热点天下', '资讯播报']; |
|||
|
|||
|
|||
start(); |
|||
|
|||
function start () { |
|||
auto.waitFor() |
|||
var appName = "cn.youth.news"; |
|||
if (launch(appName)) { |
|||
console.info("启动中青看点"); |
|||
} |
|||
console.show(); |
|||
|
|||
kkz(); |
|||
exit(); |
|||
} |
|||
|
|||
//看看赚
|
|||
function kkz () { |
|||
//初始化时要忽略的任务
|
|||
|
|||
let taskText = ''; |
|||
|
|||
for (var i = 1; i < 50; i++) { |
|||
sleep(1000); |
|||
if (i % 5 == 0) |
|||
console.clear(); |
|||
|
|||
if (text('看看赚').findOnce() == undefined) { |
|||
console.log(i, '未在看看赚页面,后退'); |
|||
back(); |
|||
} |
|||
|
|||
try { |
|||
var task = getTask(i); |
|||
if (task == undefined) { |
|||
console.log(i, '未获取到任务'); |
|||
continue; |
|||
} |
|||
|
|||
console.log(i, '开始任务 ' + taskText); |
|||
scorrToTask(task); |
|||
|
|||
var rct = task.bounds(); |
|||
randomClick(rct.centerX(), rct.centerY()); |
|||
sleep(3000); |
|||
|
|||
if (!viewTask(task)) { |
|||
console.warn(' 任务 ' + taskText + ' 失败'); |
|||
} |
|||
else { |
|||
console.warn(' 任务 ' + taskText + ' 成功'); |
|||
} |
|||
|
|||
} catch (error) { |
|||
console.error(error.message); |
|||
} |
|||
finally { |
|||
backViewTask(); |
|||
} |
|||
|
|||
} |
|||
} |
|||
|
|||
function getById (maxIndex, name) { |
|||
for (let index = 0; index < maxIndex; index++) { |
|||
console.verbose(index, name); |
|||
var t = id(name).findOnce(); |
|||
if (t != undefined) |
|||
return t; |
|||
sleep(500); |
|||
} |
|||
|
|||
return null; |
|||
} |
|||
|
|||
function getTask (i) { |
|||
// var task1 = textContains('进行中').find();
|
|||
// var task2 = text('去完成').find();
|
|||
// var tasks = task1.concat(task2);
|
|||
//查找所有任务
|
|||
var tasks = textContains('0青豆').find(); |
|||
|
|||
console.log(i, "找到的任务数据 ", tasks.length); |
|||
|
|||
for (let index = 0; index < tasks.length; index++) { |
|||
let task = tasks[index]; |
|||
taskText = ''; |
|||
let par = task.parent(); |
|||
if (par && par.childCount() >=3) { |
|||
let statusText = par.child(2).text(); |
|||
//忽略已完成
|
|||
if (statusText != '去完成' && statusText != '进行中') |
|||
continue; |
|||
|
|||
taskText = par.child(0).text(); |
|||
// console.log(" ", index, taskText);
|
|||
} |
|||
else { |
|||
continue; |
|||
} |
|||
|
|||
console.log(1); |
|||
//还未处理过
|
|||
if (allTasks.indexOf(taskText) > -1) { |
|||
console.log(2); |
|||
//console.log(" ", index, "已经处理的任务 ", taskText);
|
|||
} |
|||
else { |
|||
console.log(3); |
|||
allTasks.push(taskText); |
|||
return task; |
|||
} |
|||
} |
|||
|
|||
} |
|||
|
|||
function scorrToTask (task) { |
|||
var y = task.bounds().centerY(); |
|||
if (device.height - 300 < y) { |
|||
console.log("滚动任务列表") |
|||
gesture(400, [520, 1550], [520, 450]); |
|||
} |
|||
} |
|||
|
|||
function backViewTask () { |
|||
if (id('cz').findOnce() == undefined) |
|||
return; |
|||
|
|||
var close = id('ahp').clickable().findOnce(); |
|||
if (close != undefined) |
|||
close.click(); |
|||
else |
|||
back(); |
|||
} |
|||
|
|||
//进入世界任务页面
|
|||
function viewTask (task) { |
|||
|
|||
//判断是否进入的标志
|
|||
if (id('cz').findOnce() == undefined) { |
|||
console.log(' ', '未在viewTask页面', task.bounds()); |
|||
return; |
|||
} |
|||
|
|||
for (var i = 0; i < 8; i++) { |
|||
if (id('cz').findOnce() == undefined) { |
|||
console.log(' ', i, '未在viewTask页面'); |
|||
break; |
|||
} |
|||
|
|||
closeAd(); |
|||
|
|||
var link = boundsInside(10, 300, device.width, device.height).packageName('cn.youth.news').className('android.view.View').clickable().findOnce() |
|||
|| boundsInside(10, 300, device.width, device.height).packageName('cn.youth.news').className('android.widget.Image').clickable().findOnce(); |
|||
|
|||
if (link == undefined) { |
|||
console.log(' ', i, '未找到连接'); |
|||
} |
|||
else { |
|||
let linkText = link.text() || link.contentDescription || ""; |
|||
linkText = linkText.length > 8 ? linkText.substring(0, 8) : linkText; |
|||
|
|||
console.log(' ', i, "link ", linkText); |
|||
if (linkText.indexOf && linkText.indexOf('广告') > -1) { |
|||
continue; |
|||
} |
|||
|
|||
sleep(200) |
|||
link.click(); |
|||
sleep(1000); |
|||
back(); |
|||
sleep(1000); |
|||
} |
|||
|
|||
// console.log(" 下滑!")
|
|||
if (id('cz').findOnce() == undefined) { |
|||
console.log(' ', i, '已经退出了viewTask页面'); |
|||
break; |
|||
} |
|||
|
|||
gesture(400, [520, 1550], [520, 450]); |
|||
sleep(300); |
|||
} |
|||
return true; |
|||
} |
|||
|
|||
function closeAd () { |
|||
var closeBtn = id('big_pic_close_btn').findOnce(); |
|||
if (closeBtn != undefined) { |
|||
console.log("点击广告关闭按钮"); |
|||
randomClickObject(closeBtn); |
|||
sleep(1300); |
|||
} |
|||
|
|||
closeBtn = id('btn-close').findOnce(); |
|||
if (closeBtn != undefined) { |
|||
console.log("点击广告关闭按钮"); |
|||
randomClickObject(closeBtn); |
|||
sleep(1300); |
|||
} |
|||
|
|||
closeBtn = idContains('gdt_template').findOnce(); |
|||
if (closeBtn != undefined) { |
|||
let rect = closeBtn.bounds(); |
|||
console.log("点击广告右上角按钮"); |
|||
randomClick(rect.right - 30, rect.top + 30); |
|||
sleep(1300); |
|||
} |
|||
} |
|||
/** |
|||
* 点击 |
|||
* @param {横坐标} x |
|||
* @param {纵坐标} y |
|||
*/ |
|||
function randomClick (x, y) { |
|||
var rx = 0;// random(0, 5);
|
|||
var ry = 0;//random(0, 5);
|
|||
|
|||
click(x + rx, y + ry); |
|||
return true; |
|||
} |
|||
|
|||
/** |
|||
* 点击 |
|||
* @param {横坐标} x |
|||
* @param {纵坐标} y |
|||
*/ |
|||
function randomClickObject (obj) { |
|||
var rx = 0;// random(0, 5);
|
|||
var ry = 0;// random(0, 5);
|
|||
|
|||
var rct = obj.bounds(); |
|||
click(rct.centerX() + rx, rct.centerY() + ry); |
|||
click(rct.centerX() + rx, rct.centerY() + ry); |
|||
click(rct.centerX() + rx, rct.centerY() + ry); |
|||
return true; |
|||
} |
@ -0,0 +1,201 @@ |
|||
start(); |
|||
|
|||
function start () { |
|||
auto.waitFor() |
|||
var appName = "cn.youth.news"; |
|||
if (launch(appName)) { |
|||
console.info("启动中青看点"); |
|||
} |
|||
console.show(); |
|||
// sleep(2000);
|
|||
|
|||
// var taskBtn = getById(30, 'cn.youth.news:id/x8');
|
|||
// if (taskBtn == undefined) {
|
|||
// console.error('未找到,任务入口');
|
|||
// exit()
|
|||
// }
|
|||
|
|||
// randomClickObject(taskBtn);
|
|||
// sleep(2000);
|
|||
|
|||
// var btn = getById(10, 'cn.youth.news:id/ach'); // id('acj').findOnce();
|
|||
// if (btn == undefined) {
|
|||
// console.error('未找打,看看赚入口');
|
|||
// exit()
|
|||
// }
|
|||
// randomClickObject(btn);
|
|||
// sleep(2000);
|
|||
|
|||
// kkz();
|
|||
ssz(); |
|||
exit(); |
|||
} |
|||
|
|||
//浏览赚
|
|||
function llz () { |
|||
console.clear(); |
|||
if (text('看看赚').findOnce() == undefined) { |
|||
console.log('未在看看赚页面,后退'); |
|||
back(); |
|||
} |
|||
|
|||
var goBtn = text('浏览赚').clickable().findOnce(); |
|||
if (goBtn == undefined) { |
|||
console.warn('未找到浏览赚进入按钮,结束'); |
|||
return; |
|||
} |
|||
|
|||
goBtn.click(); |
|||
sleep(1000); |
|||
} |
|||
|
|||
//浏搜索赚
|
|||
function ssz () { |
|||
console.clear(); |
|||
|
|||
if (text('看看赚').findOnce() == undefined) { |
|||
console.log('未在看看赚页面,后退'); |
|||
back(); |
|||
} |
|||
|
|||
var goBtn = text('搜索赚').clickable().findOnce(); |
|||
if (goBtn == undefined) { |
|||
console.warn('未找到搜索赚进入按钮,结束'); |
|||
return; |
|||
} |
|||
|
|||
randomClickObject(goBtn); |
|||
// goBtn.click();
|
|||
sleep(3000); |
|||
|
|||
|
|||
//等待页面出现
|
|||
if (text('去搜索').findOne(18 * 1000) == undefined) { |
|||
console.warn('未找到去搜索的任务'); |
|||
return; |
|||
} |
|||
|
|||
//任务列表
|
|||
var items = text('去搜索').clickable().find(); |
|||
if (items == undefined || items.length == 0) { |
|||
console.warn('未找到去搜索的任务'); |
|||
// back();
|
|||
return; |
|||
} |
|||
|
|||
console.warn("开始'去搜索'任务"); |
|||
for (let index = 0; index < items.length; index++) { |
|||
|
|||
var item = text('去搜索').clickable().findOnce(index); |
|||
if (item == undefined) { |
|||
console.warn(" ", index, "未找到"); |
|||
continue; |
|||
} |
|||
|
|||
console.warn(" ", index, "去搜索任务 ", item.parent().child(1).text()); |
|||
|
|||
randomClickObject(item); |
|||
|
|||
if (text('step3').findOne(18 * 1000) != undefined) { |
|||
sszViewTask(); |
|||
} |
|||
} |
|||
} |
|||
|
|||
function sszViewTask () { |
|||
for (var i = 0; i < 12; i++) { |
|||
|
|||
var task = className('android.view.View').clickable().filter(function (v) { |
|||
return v.text().length > 3; |
|||
}).findOnce(); |
|||
|
|||
if (task == undefined) { |
|||
console.log(" ", i, "未找到"); |
|||
continue; |
|||
} |
|||
|
|||
console.log(" ", i, task.text()); |
|||
randomClickObject(task); |
|||
sleep(1000); |
|||
|
|||
if (text('step3').findOnce() == undefined) { |
|||
back(); |
|||
sleep(2000); |
|||
} |
|||
} |
|||
|
|||
//退回到主界面
|
|||
if (text('step3').findOnce() != undefined) { |
|||
back(); |
|||
sleep(2000); |
|||
} |
|||
} |
|||
|
|||
function getById (maxIndex, name) { |
|||
for (let index = 0; index < maxIndex; index++) { |
|||
console.verbose(index, name); |
|||
var t = id(name).findOnce(); |
|||
if (t != undefined) |
|||
return t; |
|||
sleep(500); |
|||
} |
|||
|
|||
return null; |
|||
} |
|||
|
|||
|
|||
function closeAd () { |
|||
var closeBtn = id('big_pic_close_btn').findOnce(); |
|||
if (closeBtn != undefined) { |
|||
console.log("点击广告关闭按钮"); |
|||
randomClickObject(closeBtn); |
|||
sleep(1300); |
|||
} |
|||
|
|||
closeBtn = id('btn-close').findOnce(); |
|||
if (closeBtn != undefined) { |
|||
console.log("点击广告关闭按钮"); |
|||
randomClickObject(closeBtn); |
|||
sleep(1300); |
|||
} |
|||
|
|||
closeBtn = idContains('gdt_template').findOnce(); |
|||
if (closeBtn != undefined) { |
|||
let rect = closeBtn.bounds(); |
|||
console.log("点击广告右上角按钮"); |
|||
randomClick(rect.right - 30, rect.top + 30); |
|||
sleep(1300); |
|||
} |
|||
} |
|||
/** |
|||
* 点击 |
|||
* @param {横坐标} x |
|||
* @param {纵坐标} y |
|||
*/ |
|||
function randomClick (x, y) { |
|||
var rx = 0;// random(0, 5);
|
|||
var ry = 0;//random(0, 5);
|
|||
|
|||
click(x + rx, y + ry); |
|||
return true; |
|||
} |
|||
|
|||
/** |
|||
* 点击 |
|||
* @param {横坐标} x |
|||
* @param {纵坐标} y |
|||
*/ |
|||
function randomClickObject (obj) { |
|||
var rx = 0;// random(0, 5);
|
|||
var ry = 0;// random(0, 5);
|
|||
|
|||
if (obj && obj.click) { |
|||
obj.click(); |
|||
} |
|||
|
|||
var rct = obj.bounds(); |
|||
click(rct.centerX() + rx, rct.centerY() + ry); |
|||
click(rct.centerX() + rx, rct.centerY() + ry); |
|||
click(rct.centerX() + rx, rct.centerY() + ry); |
|||
return true; |
|||
} |
Loading…
Reference in new issue