Auto.js 點擊控件 位置 封裝方法
Auto.js 怎么點擊文本 怎么點擊位置 怎么點擊控件 怎么做腳本
調(diào)用方法如下
text_click("掃一掃",1,0);
/**
ttext = 文本
kong
0 = 點擊文本 (舉例:需要點擊的內(nèi)容為“123”拇泛,厘擂,若出現(xiàn)“1234,123” 則點擊123)
1 = 點擊包括文本 (舉例:需要點擊的內(nèi)容為“123”劫窒,成肘,若出現(xiàn)“1234帘靡,123” 則點擊1234)
2 = 點擊出現(xiàn)的最后一個文本 的控件 (舉例:需要點擊的內(nèi)容為“123”淆攻,,若出現(xiàn)“123瘤袖,123衣摩,123” 則點擊第三個123)
3 = 點擊按鈕控件文本 (舉例:一般用于點擊:按鈕,彈窗按鈕捂敌,授權(quán)提示按鈕艾扮,等....)
clickmod
0 = 控件或位置 (舉例:控件點擊不了 則點位置)
1 = 位置 (舉例:點文本,控件)
2 = 控件 (舉例:點文本占婉,位置)
**/
function text_click(ttext,kong,clickmod){//文本泡嘴,,
var texi = null;
var 是否可點 = false;
var 是否找到 = true;
console.log("[text_click]","ttext="+ ttext +"&kong="+ kong +"&clickmod="+ clickmod);
var texi = 控件判斷(ttext,kong,"TextView");
if(texi == null && texi == undefined){
console.log("[text_click]","沒有找到:TextView");
是否找到 = false;
texi = 控件判斷(ttext,kong,"Button");
if(texi == null && texi == undefined){
console.log("[text_click]","沒有找到:Button");
texi = 控件是否可點(texi);
if(texi != false){
點擊位置或控件(texi,ttext,clickmod);
}else{
點擊位置(texi,ttext);
}
}
}
if(是否找到 == true){//是否找到
texi = 控件是否可點(texi);
if(texi != false){
點擊位置或控件(texi,ttext,clickmod);
}else{
點擊位置(texi,ttext);
}
}
console.log("[text_click]","完畢:"+ 是否找到);
}
function 控件判斷(ttext,kong,clas){
var texi = null;
var 是否可點 = false;
var 是否找到 = false;
console.log("[控件判斷]","進入類庫:ttext="+ ttext +"&kong="+ kong +"&clas="+ clas);
if(kong == 0){
texi = className(clas).text(ttext).findOne(1000);
if(texi)是否找到 = true;
if(是否找到 == false){
console.log("[控件判斷]","是否找到:"+ 是否找到);
texi = className(clas).textContains(ttext).findOne(1000);
}else{
console.log("[控件判斷]","是否找到:"+ 是否找到);
}
}else if(kong == 1){
texi = className(clas).textContains(ttext).findOne(1000);
}else if(kong == 2){
var fsfan = className(clas).textContains(ttext).find();
var lengt = fsfan.length-1;
console.log("[控件判斷]","lengt="+ lengt);
texi = fsfan[lengt];
}else if(kong == 3){
texi = className("Button").textContains(ttext).findOne(1000);
}
if(是否找到 == false){
if(texi){
是否找到 = true;
}
}
console.log("[控件判斷]","完畢:"+ 是否找到);
return texi;
}
function 點擊位置(texi,ttext){
console.log("[點擊位置]","進入:ttext:"+ ttext);
if(texi != null && texi != undefined && texi != false){
var aws = texi.bounds();
var 是否成功 = false;
if(shell("screencap /sdcard/root.png",true).code == 0){
是否成功 = Tap(aws.centerX(),aws.centerY());//有root權(quán)限
}else{
是否成功 = click(aws.centerX(),aws.centerY());//無root權(quán)限
}
}
console.log("[點擊位置]","完畢:"+ 是否成功);
}
function 點擊位置或控件(texi,ttext,clickmod){
var clickcode = false;
console.log("[點擊位置或控件]","進入clickmod="+ clickmod +"&ttext="+ ttext);
if(clickmod == 0){
clickcode = texi.click();
if(clickcode == false){
點擊位置(texi,ttext);
}
}else if(clickmod == 1){
點擊位置(texi,ttext);
}else if(clickmod == 2){
clickcode = texi.click();
}
console.log("[點擊位置或控件]","完畢clickcode="+ clickcode +"&ttext="+ ttext);
}
function 控件是否可點(texi){
console.log("[控件是否可點]","進入類庫");
var czz = "";
var 是否找到 = false;
for(var i=0;i<=10;i++){
sleep(122);
if(texi != null && texi != undefined){
if(texi.clickable() == true){
sleep(166);
是否找到 = texi;
console.log("[控件是否可點]","控件可點true");
break;
}else{
texi = texi.parent();
}
}else{
console.log("[控件是否可點]","texi::::"+ texi);
}
}
if(是否找到 == false){
console.log("[控件是否可點]","完畢:"+ 是否找到);
}else{
console.log("[控件是否可點]","完畢:true");
}
return 是否找到;
}