当前位置: 首页 > 工具软件 > dc.js > 使用案例 >

auto.js 自动化 从零开始

衡建中
2023-12-01

auto.js 自动化 从零开始

最近再玩奇奇怪怪的脚本,发个帖做一下记录
本文主要讲述 auto.js (手机免root自动化脚本)的一些基础知识,以及一些简单的实例,该脚本需要有js基础

1.安装

官网下载autojs直接安装在安卓手机上,或者 安装在模拟器
最新版的autojs pro 是要收费的
4.10 旧版本是免费的

安装好以后 安装 vscode autojs扩展插件
打开 cmd 窗口 输入ipconfig 查看电脑ip地址 具体可以查看官网
手机上 打开autoJsPro 进行连接电脑选择客户端连接 输入IP地址
连接成功 右下角有提示

vscode ctrl+shift+p 输入auto.js
创建 v8 或 v9 项目
在 main.js 输入

auto.waitFor()  //开启无障碍
 console.show() //打开控制台
 console.log("Hello Auto.js")

点击右上角 图标 选择设备运行
查看 手机 看到 弹窗
Ok 配置成功

2.常用方法

打开autojs pro 悬浮窗 点击绿色小图标 点击蓝色按钮查看控件信息

  1. 控件
id("some_id").findOne()   //id 选择控件 其内容是一个 UIObject findOne()表示找到一个控件

text(" some text").findOne() // 文本控件

id("some_id").Untilfind()  //批量查找

操作

click()  //点击
id("some_btn").findOne().click()
swipe(x1,x2,x3,x4,duration)  //滑动屏幕 很好理解吧
id("some_text").findOne().setText("some text") //输入、设置文本
sleep(3000 )  //延时 单位毫秒
 

文件系统

var fileDir = "/sdcard/1.txt" 
files.read(fileDir)  //读取整个文件
files.write(fileDir)  //写

//频繁读取时 使用文件流
var file = open(fileDir,"w","utf-8")  //w 模式-写 utf-8编码
	//一些操作
	
file.close()
arrayStr.foreach((str)=>{   //批量写入字符串
	file.append(fileDir,str)
})
file.writeline(line)  //line-str 写入文本和一个换行符
file.writelines(lines)  //lines - arr<str>  写入许多行
读反过来

实例: 某钉 群成员ID 采集

function Dc(){

}
Dc.prototype.init = function(){
    auto.waitFor()
    setScreenMetrics(1080,1920) //设置分辨率 可自动适配
    // console.show()
    // console.log("开始运行")
}

Dc.prototype.copyList = function(){

    var userNames = []
    id("tv_name").untilFind().forEach((node)=>{
       userNames.push(node.text().split("(")[1].split("-")[0])
    })

    // console.show()
    // log(userNames)

    var fileDir = "/sdcard/users/dingding1.txt"
    var isFile = files.exists(fileDir)
    if(isFile){
        //如果存在 直接写入
        //var file = open(fileDir,"w","utf-8")
        userNames.forEach((name)=>{
            files.append(fileDir,name+"\n")
        })
        //file.close()
        sleep(500)
        swipe(500, 1800,500, 100,random(1000,2000))
    }else{
        //创建一个文件夹存放 用户
        files.createWithDirs(fileDir)
    }
    
   

    //sleep(3000)
    //swipe(200,1900,200,100,random(1000,2000))

}
const dc = new Dc()
dc.init()

setInterval(() => {
    dc.copyList()   
}, 2000);

 类似资料: