当前位置: 首页 > news >正文

Autojs详解

目录

一,AutoJs概述

二,环境搭建

三,js语法

四,基于控件的操作

1,吐司

2,点击

 3,长按

 4,设置文本

 5,UiSelector

 6,UiObject

7,控件集合的操作方法


一,AutoJs概述

什么是Auto.js?相信能看到这篇文章的人应该都知道AutoJs是干嘛的了。

它是不需要root权限的JS自动化软件。

基于无障碍接口。

主要用来开发app脚本。

二,环境搭建

首先电脑需要安装VSCode,用来编写js脚本

其次手机需要安装autoJs的apk,我用的是4.11版本的,这个是免费版本,且不限制wx,dy等主流app

最后需要安装一个打包软件,用来打包成apk

vscode插件的安装:

搜索Auto.js 安装上图的插件即可

整体环境搭建就是这些,需要apk以及具体搭建细节不了解的小白可以私信我。

三,js语法

需要掌握JavaScript编程语言,这里省略。。。

四,基于控件的操作

1,吐司

这个非常简单

toast("袁震")

2,点击

比如说我们要点击微信里面的微信团队

编写脚本:

toast("袁震")
//一直循环 直到点击了微信团队
while(!click("微信团队"));

运行效果:

 3,长按

下面实现一个取消关注的操作:

toast("袁震")
while(!click("微信"));
sleep(1000)
longClick("微信游戏")
sleep(1000)
click("不再关注")

 4,设置文本

比如要在聊天框里设置一个helloworld:

toast("袁震")
while(!click("微信"));
sleep(1000)
click("袁震")
sleep(1000)
setText("helloworld")

 5,UiSelector

UiSelector即选择器,用于通过各种条件选取屏幕上的控件,再对这些控件进行点击、长按等动作。控件有各种属性,包括文本(text), 描述(desc), 类名(className), id等等。我们通常用一个控件的属性来找到这个控件。

toast("袁震")
while(!click("微信"));
sleep(1000);
//使用搜索图标的id 查找控件并点击
id("jha").findOne().click();

 6,UiObject

UiObject表示一个控件,可以通过这个对象获取到控件的属性,也可以对控件进行点击、长按等操作。

获取一个UiObject通常通过选择器的findOne()findOnce()等函数,也可以通过UiCollection来获取,或者通过UiObject.child()UiObject.parent()等函数来获取一个控件的子控件或父控件。

每个具体方法可以参考官方api

7,控件集合的操作方法

例如我要依次点击微信通讯录的朋友:

toast("袁震")
while(!click("微信"));
sleep(1000);
click("通讯录");
sleep(1000);
id("kbq").className("android.widget.TextView").depth(22).find().forEach(element => {if(element.text()!="微信团队"){click(element.text())sleep(3000)id("com.tencent.mm:id/actionbar_up_indicator").depth(9).findOne().click()sleep(1500)}
});

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 解决macOS下Homebrew下载慢的问题
  • [JS]经典面试题-基础篇
  • 泛微基于华为仓颉编程语言开发公文交换系统 推动办公软件全面国产化
  • 代码随想录算法训练营第二十三天(回溯 二)
  • 目标检测(Object Detection)
  • 深度学习 --- VGG16各层feature map可视化(JupyterNotebook实战)
  • Qt生成.exe文件
  • Windows上传Linux文件行尾符转换
  • 使用kubekey快速搭建k8s集群
  • fastadmin 安装
  • 信息学奥赛一本通编程启蒙题解(3031~3035)
  • Python正则表达式提取车牌号
  • C#:从HttpResponseMessage获取想要的内容(字符串或类型)
  • 深入浅出:你需要了解的用户数据报协议(UDP)
  • java设计模式--结构型模式
  • Angular 响应式表单 基础例子
  • CentOS从零开始部署Nodejs项目
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • DOM的那些事
  • express + mock 让前后台并行开发
  • Java精华积累:初学者都应该搞懂的问题
  • laravel with 查询列表限制条数
  • Next.js之基础概念(二)
  • node入门
  • php的插入排序,通过双层for循环
  • Vue 动态创建 component
  • Zepto.js源码学习之二
  • 爱情 北京女病人
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 我是如何设计 Upload 上传组件的
  • 自动记录MySQL慢查询快照脚本
  • Android开发者必备:推荐一款助力开发的开源APP
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (3)(3.5) 遥测无线电区域条例
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (Java入门)学生管理系统
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (PADS学习)第二章:原理图绘制 第一部分
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (三十)Flask之wtforms库【剖析源码上篇】
  • (实战篇)如何缓存数据
  • (数据结构)顺序表的定义
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .gitignore不生效的解决方案
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • .NET与 java通用的3DES加密解密方法
  • .NET之C#编程:懒汉模式的终结,单例模式的正确打开方式
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • @PreAuthorize注解