// 打开App
function open_app(appName){
var name = getPackageName(appName);
if(name){
toastLog("打开"+appName+"...");
launch(name);
}
else{
toastLog("App名称错误");
}
return name;
}
// 等待TextView存在并延时点击
function wait_textview_exists_click(textViewName, delayTime, showMsg){
let startTime = new Date().getTime();
while(true){
if(new Date().getTime() - startTime > 30000){
toastLog("Timeout: 30s");
break;
}
if(className("android.widget.TextView").text(textViewName).exists()){
sleep(delayTime);
toastLog("点击" + showMsg);
let b = className("android.widget.TextView").text(textViewName).findOnce().bounds();
click(b.centerX(),b.centerY());
break;
}
sleep(1000);
}
}
// 等待View存在并延时点击
function wait_image_exists_click(imageIndex, delayTime, showMsg){
while(true){
if (className("android.widget.ImageView").exists()){
sleep(delayTime);
toastLog("点击" + showMsg);
let views = className("android.widget.ImageView").find();
if(imageIndex < 0){
imageIndex = views.length + imageIndex;
}
let b = views[imageIndex].bounds();
click(b.centerX(),b.centerY());
break;
}
}
}
// 等待View存在并延时点击
function wait_desc_exists_click(descName, delayTime, showMsg){
let startTime = new Date().getTime();
while(true){
if(new Date().getTime() - startTime > 30000){
toastLog("Timeout: 30s");
break;
}
if(className("android.view.View").desc(descName).exists()){
sleep(delayTime);
toastLog("点击" + showMsg);
let b = className("android.view.View").desc(descName).findOnce().bounds();
click(b.centerX(),b.centerY());
break;
}
sleep(1000);
}
}
// 判断TextView是否存在
function check_textview_exists(textViewName, delayTime){
sleep(delayTime);
if(className("android.widget.TextView").text(textViewName).exists()){
return true;
}
else{
return false;
}
}
// 淘宝预约茅台
function tm_mt_yy(){
var name = open_app("淘宝");
waitForPackage(name);
wait_image_exists_click(-1, 3000, "\"我的淘宝\"");
wait_image_exists_click(-1, 3000, "\"我的淘宝\"");
wait_textview_exists_click("收藏", 3000, "\"收藏\"");
wait_desc_exists_click("1499", 3000, "\"飞天茅台\"");
wait_textview_exists_click("点击预约", 3000, "\"点击预约\"");
if(check_textview_exists("预约成功", 3000)){
toastLog("预约成功");
}else{
toastLog("预约失败");
}
}
tm_mt_yy();