Auto.js安卓脚本自动化app的代码语句大全

一、基本语句

(一)常用

home();   // 返回home主页
Back();   // 返回键
sleep(1000);    // 延时1000毫秒
var num = random(1,10);   // 设置1~10的随机数
click("app名");    // 打开某app
toast("你好,世界");  // 底部文本提醒
setText("你好,世界");   //在输入框点击出现光标,即可使用该语句填写文本 
//或者setText(0,"账号"); setText(1,"密码");

(二)点击

// 设置屏幕指标再点击,使得分辨率不同的手机也点在相同的点
setScreenMetrics(1080, 1920);
click(800, 200);      // 按坐标点击

longClick(800, 200)   // 长按600毫秒,并返回是否长按成功
press(800,200,2000)   // 设置坐标长按2000毫秒,并返回是否成功

(三)控制台

console.show();         // 显示控制台
console.log("白色");      // 控制台打印文本:白色
console.info("绿色");       // 控制台打印文本:绿色
console.error("红色");     // 控制台打印文本:红色

(四)用线程自动开启截图权限

console.show();
threads.start(function(){
    
    
            if(auto.service != null){
    
      //如果已经获得无障碍权限
                    //由于系统间同意授权的文本不同,采用正则表达式
                    let Allow = textMatches(/(允许|立即开始|统一)/).findOne(10*1000);
                    if(Allow){
    
    
                            Allow.click();
                    }
            }
});
var result = images.requestScreenCapture();    // 申请截图权限
console.log(result)

(五)读写权限

//读
var result = files.read("/mnt/shared/Pictures/result.txt")
console.log(result)

// 写
files.write("/mnt/shared/Pictures/result.txt","你好,世界");    // 直接写法
files.append("/mnt/shared/Pictures/reline.txt", JSON.stringify([1,2])+"\n")   // 追加写法

二、布局代码

// 常用控件属性,方便定位
id("xxx").className("xxx").depth(int).text("xxx").desc("xxx")  

(一)位置

// 直接通过id找到控件点击
id("hkp").findOne(10).click()  

// 通过文本选择找到控件,根据控件中心坐标偏移完成点击(推荐使用)
var label = className("android.widget.TextView").text("账号").findOne(10)
console.log(label.bounds().centerX(),label.bounds().centerY())
click(label.bounds().centerX()+200,label.bounds().centerY())   // 向控件右偏移200点击

// 找到控件的父亲的第二个孩子进行点击,child(0)为第一个孩子,即控件本身
className("android.widget.TextView").text("密码").findOne(10).parent().child(1).click()

// 输出控件文本
var label = className("android.widget.TextView").text("国家/地区").findOne(10).parent().child(1)
console.log(label.text())

// 按控件文本找按钮点击
var button = textMatches("登录").findOne(10)
if(button){
    
    button.click()}

(二)判断点击

// 等待控件出现
while(!className("android.widget.TextView").text("我的").findOne(10)){
    
    sleep(500)};
log("打开成功!")

// 等等控件出现然后点击
while(!className("android.widget.TextView").text("签到").exists()){
    
    sleep(500)}
className("android.widget.TextView").text("签到").click()

//找到控件文本包含内容进行点击
if(textContains("签到").exists()){
    
    
    textContains("签到").findOnce(0).click()     //找到第一个控件点击,第二个改1,类推
}

(二)输出当前页面所有文本

for(i=0;i<1000;i++){
    
    
    var label = textMatches("(.*?)").findOnce(i)
    if(!label){
    
    break}
    log(label.text())
}

三、函数大全

1、text函数

text("签到")    // 找所有"签到"控件
textContains("签到")    // 找所有包含"签到"的控件
textStartWith("签到")     // 找所有"签到"开头的控件
textEndsWith("签到")     // 找所有"签到"结尾的控件
textContains("签到").findOnce(0)   // 找第一个包含"签到"的控件
textMatches("开始(.*?)了").findOnce(0)   // 找第一个正则表达式内容

2、bounds函数

bounds().left      "长方形左边界的x坐标"
bounds().right     "长方形右边界的x坐标"
bounds().top       "长方形上边界的y坐标"
bounds().bottom    "长方形下边界的y坐标"
bounds().centerX() "长方形中点x坐标"
bounds().centerY() "长方形中点y坐标"
bounds().width()   "长方形宽度也就是控件宽度"
bounds().height()  "长方形高度也就是控件高度"

猜你喜欢

转载自blog.csdn.net/weixin_51111267/article/details/130750182