一、基本語句
(一)常用
home(); // 返回home主頁
Back(); // 返回鍵
sleep(1000); // 延時1000毫秒
var num = random(1,10); // 設(shè)置1~10的隨機(jī)數(shù)
click("app名"); // 打開某app
toast("你好,世界"); // 底部文本提醒
setText("你好,世界"); //在輸入框點(diǎn)擊出現(xiàn)光標(biāo),即可使用該語句填寫文本
//或者setText(0,"賬號"); setText(1,"密碼");
(二)點(diǎn)擊
// 設(shè)置屏幕指標(biāo)再點(diǎn)擊,使得分辨率不同的手機(jī)也點(diǎn)在相同的點(diǎn)
setScreenMetrics(1080, 1920);
click(800, 200); // 按坐標(biāo)點(diǎn)擊
longClick(800, 200) // 長按600毫秒,并返回是否長按成功
press(800,200,2000) // 設(shè)置坐標(biāo)長按2000毫秒,并返回是否成功
(三)按住隨機(jī)滑動
// 入?yún)?起點(diǎn)x,起點(diǎn)y,終點(diǎn)x,終點(diǎn)y,過程耗時單位毫秒)
sml_move(257, 1670, 870, 1670,800);
function bezier_curves(cp, t) {
cx = 3.0 * (cp[1].x - cp[0].x);
bx = 3.0 * (cp[2].x - cp[1].x) - cx;
ax = cp[3].x - cp[0].x - cx - bx;
cy = 3.0 * (cp[1].y - cp[0].y);
by = 3.0 * (cp[2].y - cp[1].y) - cy;
ay = cp[3].y - cp[0].y - cy - by;
tSquared = t * t;
tCubed = tSquared * t;
result = {
"x": 0,
"y": 0
};
result.x = (ax * tCubed) + (bx * tSquared) + (cx * t) + cp[0].x;
result.y = (ay * tCubed) + (by * tSquared) + (cy * t) + cp[0].y;
return result;
};
function sml_move(qx, qy, zx, zy, time) {
var xxy = [time];
var point = [];
var dx0 = {
"x": qx,
"y": qy
};
var dx1 = {
"x": random(qx - 100, qx + 100),
"y": random(qy , qy + 50)
};
var dx2 = {
"x": random(zx - 100, zx + 100),
"y": random(zy , zy + 50),
};
var dx3 = {
"x": zx,
"y": zy
};
for (var i = 0; i < 4; i++) {
eval("point.push(dx" + i + ")");
};
log(point[3].x)
for (let i = 0; i < 1; i += 0.08) {
xxyy = [parseInt(bezier_curves(point, i).x), parseInt(bezier_curves(point, i).y)]
xxy.push(xxyy);
}
log(xxy);
gesture.apply(null, xxy);
};
(四)控制臺
console.show(); // 顯示控制臺
console.log("白色"); // 控制臺打印文本:白色
console.info("綠色"); // 控制臺打印文本:綠色
console.warn("藍(lán)色"); // 控制臺打印文本:藍(lán)色
console.error("紅色"); // 控制臺打印文本:紅色
(五)用線程自動開啟截圖權(quán)限
console.show();
threads.start(function(){
if(auto.service != null){ //如果已經(jīng)獲得無障礙權(quán)限
//由于系統(tǒng)間同意授權(quán)的文本不同,采用正則表達(dá)式
let Allow = textMatches(/(允許|立即開始|統(tǒng)一)/).findOne(10*1000);
if(Allow){
Allow.click();
}
}
});
var result = images.requestScreenCapture(); // 申請截圖權(quán)限
console.log(result)
(六)讀寫權(quán)限
//讀
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找到控件點(diǎn)擊
id("hkp").findOne(10).click()
// 通過文本選擇找到控件,根據(jù)控件中心坐標(biāo)偏移完成點(diǎn)擊(推薦使用)
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點(diǎn)擊
// 找到控件的父親的第二個孩子進(jìn)行點(diǎn)擊,child(0)為第一個孩子,即控件本身
className("android.widget.TextView").text("密碼").findOne(10).parent().child(1).click()
// 輸出控件文本
var label = className("android.widget.TextView").text("國家/地區(qū)").findOne(10).parent().child(1)
console.log(label.text())
// 按控件文本【正則表達(dá)式】找按鈕點(diǎn)擊
let button = textMatches("登錄.*?").findOne(10);
var button = textMatches("登錄").findOne(10)
if(button){button.click()}
(二)判斷點(diǎn)擊
// 等待控件出現(xiàn)
while(!className("android.widget.TextView").text("我的").findOne(10)){sleep(500)};
log("打開成功!")
// 等等控件出現(xiàn)然后點(diǎn)擊
while(!className("android.widget.TextView").text("簽到").exists()){sleep(500)}
className("android.widget.TextView").text("簽到").click()
//找到控件文本包含內(nèi)容進(jìn)行點(diǎn)擊
if(textContains("簽到").exists()){
textContains("簽到").findOnce(0).click() //找到第一個控件點(diǎn)擊,第二個改1,類推
}
(二)輸出當(dāng)前頁面所有文本
for(i=0;i<1000;i++){
var label = textMatches("(.*?)").findOnce(i)
if(!label){break}
log(label.text())
}
三、函數(shù)大全
1、text函數(shù)文章來源:http://www.zghlxwxcb.cn/news/detail-554991.html
text("簽到") // 找所有"簽到"控件
textContains("簽到") // 找所有包含"簽到"的控件
textStartWith("簽到") // 找所有"簽到"開頭的控件
textEndsWith("簽到") // 找所有"簽到"結(jié)尾的控件
textContains("簽到").findOnce(0) // 找第一個包含"簽到"的控件
textMatches("開始(.*?)了").findOnce(0) // 找第一個正則表達(dá)式內(nèi)容
2、bounds函數(shù)文章來源地址http://www.zghlxwxcb.cn/news/detail-554991.html
bounds().left "長方形左邊界的x坐標(biāo)"
bounds().right "長方形右邊界的x坐標(biāo)"
bounds().top "長方形上邊界的y坐標(biāo)"
bounds().bottom "長方形下邊界的y坐標(biāo)"
bounds().centerX() "長方形中點(diǎn)x坐標(biāo)"
bounds().centerY() "長方形中點(diǎn)y坐標(biāo)"
bounds().width() "長方形寬度也就是控件寬度"
bounds().height() "長方形高度也就是控件高度"
到了這里,關(guān)于Auto.js安卓腳本自動化app的代碼語句大全的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!