当前位置:   article > 正文

Auto.js脚本编写教程 (一)_auto.js教程

auto.js教程
一、工具下载安装

手机端:auto.js(百度即可)
PC端:  VS Code     JDK      SDK Tools(定位工具: Uiautomatorviewer


VS Code 用于代码编写 Uiautomatorviewer用于元素定位,也就是APP的界面分析

下载地址:
VS code:https://code.visualstudio.com/

JDK网盘64位下载地址: https://pan.baidu.com/s/1dfhaoMVQLDqSOAj45aP4Lg

SDK下载(Android集成开发环境)链接:https://pan.baidu.com/s/1zYTq5Zv2yFjDyI8XyKoMUw 提取码:zovb

(JDK安装配置教程:https://blog.csdn.net/qq_41742494/article/details/99709605)

SDK环境配置步骤:此电脑右键–>属性–>高级系统设置–>环境变量–>找到"Path"编辑–>新建–>浏览(找到Android集成开发环境的解压路径,定位到sdk目录级。如:E:\免安装软件\adt-bundle-windows-x86_64-20131030\adt-bundle-windows-x86_64-20131030\sdk)–>一路确定出来–>Dos命令行输入adb–>不提示adb不是内部命令就成功了

二、ADB及Uiautomatorviewer使用

1. 通过USB数据线将手机连接到电脑
2. 打开adb.exe       sdk安装目录 \ platform-tools \ adb.exe       输入命令(查看手机连接状态):

            adb devices

3. 运行uiautomatorviewer.bat       sdk安装目录 \ tools \ bin \ uiautomatorviewer.bat
uiautomatorviewer介绍
4. uiautomatorviewer不能截取手机屏幕解决办法
(1)在电脑桌面创建两个文本文档并更改后缀名app.uix      app.png
(2)在电脑桌面文本文档并更改后缀名为 bat   右键编辑 > 输入以下内容 > 保存

	@echo off

	>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
	
	if '%errorlevel%' NEQ '0' (
	
	echo 请求管理员权限...
	
	goto UACPrompt
	
	) else ( goto gotAdmin )
	
	:UACPrompt
	
	echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
	
	echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
	
	"%temp%\getadmin.vbs"
	
	exit /B
	
	:gotAdmin
	
	
	@echo on
	adb shell uiautomator dump /sdcard/app.uix
	adb pull /sdcard/app.uix  C:/Users/hjfdzd/Desktop/app.uix
	
	adb shell screencap -p /sdcard/app.png
	adb pull /sdcard/app.png C:/Users/hjfdzd/Desktop/app.png
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

5. 打开uiautomatorviewer点击打开    app.uix      app.png       即可分析app界面

三、PC端代码编写

1. PC端打开VS Code 点击EXTENSIONS 搜索Auto.js点击安装
在这里插入图片描述
2. 开启Autojs服务 Ctrl + Shift + P > Autojs start server
3. 手机端打开Autojs开启无障碍服务,点击连接电脑输入电脑IP进行连接
在这里插入图片描述

四、控件分析及代码编写

1.分析界面如下
在这里插入图片描述在这里插入图片描述

2.找出视频红包对应右上角的  2 ,并点击视频红包进行金币的赚取
等待视频看结束点击关闭按钮,返回界面
在这里插入图片描述
在这里插入图片描述
3.代码如下:

/**
 * 定义控件btn,父控件btnParent, 关闭控件btnClose
 * 区域左上角顶点 boundLeft,boundTop 区域右下角顶点 boundRight,boundBottom
 * 手机适配比: 屏宽比 wRatio  屏高比  hRatio
 * 计数变量 count
 * 视频可点击总次数 total(需查找的控件  2 )
 * 最终点击坐标点 pointX,pointY
 */

var btn,btnParent,btnClose,boundLeft,boundTop,boundRight,boundBottom,wRatio,hRatio,count,total,pointX,pointY,flag;

//屏幕比用2280X1080的屏幕适配其他
wRatio = device.width / 1080;
hRatio = device.height / 2280;

/**
 * 通过uiautomatorviewer分析获得 2 所在控件 bounds=[219,1194][270,1245]
 * 其中:
 *      boundLeft = 219
 *      boundTop = 1194
 *      boundRight = 270
 *      boundBottom = 1245
 * 适配其他机型 只需横坐标乘以 wRatio  纵坐标乘以 hRatio
 */
boundLeft = 219 * wRatio;
boundTop = 1194 * hRatio;
boundRight = 270 * wRatio;
boundBottom = 1245 * hRatio;

/**
 * UiSelector.boundsInside(left, top, right, buttom)
 * 在bound区域内查找控件
 * 在bound区域内查找className("android.view.View") 即 2 所在控件
 */

btn = className("android.view.View").boundsInside(boundLeft,boundTop,boundRight,boundBottom).findOne(500);
//如果btn不为空
if(btn){
    flag = true;
    while (flag) {
        //获取文本控件  即 2
        total = btn.text();
        if (total!=null) {
            //寻找父控件
            btnParent = btn.parent().parent().parent();
            //找到父控件的区域
            boundLeft = btnParent.bounds().left;
            boundTop = btnParent.bounds().top;
            boundRight = btnParent.bounds().right;
            boundBottom = btnParent.bounds().bottom;
            //随机点击坐标
            pointX = Math.random()*(boundRight-boundLeft)+boundLeft;
            pointY = Math.random()*(boundBottom-boundTop)+boundTop;
            //点击
            click(pointX,pointY);
            console.log(pointX+","+pointY);
            //等待1s
            sleep(1000);
            //等待视频观看完毕
            while (flag) {
                //查找关闭按钮
                btnClose = id("com.xiangzi.jukandian:id/tt_video_ad_close_layout").findOne(500);
                if (btnClose) {
                    //点击关闭
                    btnClose.click();
                    sleep(1000);
                    //标识符置为false跳出循环
                    flag = false;
                }
                //查找关闭按钮
                btnClose = className("android.widget.TextView").text("关闭广告").findOne(500);
                if (btnClose) {
                    //点击关闭
                    btnClose.click();
                    sleep(1000);
                    //标识符置为false跳出循环
                    flag = false;
                }
                //查找关闭按钮
                btnClose = id("jump_tv").text("跳过").findOne(500);
                if (btnClose) {
                    //点击关闭
                    btnClose.click();
                    sleep(1000);
                    //标识符置为false跳出循环
                    flag = false;
                }
            }
            flag = true;
        }else{
            flag = false; 
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
五、总结

1.电脑编码容易便捷
2.uiautomatorviewer界面分析清晰,可轻易找到控件
3.uiautomatorviewer还有好多控件属性尚未列出,可结合autojs悬浮窗进行界面分析
注:
      若有帮助,请关注本号,持续分享

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/266526
推荐阅读
相关标签
  

闽ICP备14008679号