# Autox **Repository Path**: perry_fan/autox ## Basic Information - **Project Name**: Autox - **Description**: autox脚本聚合 1、应用自动化测试 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-07-25 - **Last Updated**: 2024-01-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 一. AutoXJs介绍 --- >一个支持无障碍服务的Android平台上的JavaScript 运行环境 和 开发环境,其发展目标是类似JsBox 和 Workflow。 [AutoX项目地址](https://github.com/kkevsekk1/AutoX) [AutoXAPI文档](http://doc.autoxjs.com/#/) ### 1. 特性介绍 --- | 特性 | 描述 | | ------------------------- | ------------------------------------------------------------ | | **1. 简单易用** | 由无障碍服务实现的简单易用的自动操作函数 | | **2. 基于 JavaScript** | 采用JavaScript为脚本语言,并支持代码补全、变量重命名、代码格式化、查找替换等功能,可以作为一个JavaScript IDE使用 | | **3. 易自动化测试** | 更专业&强大的选择器API,提供对屏幕上的控件的寻找、遍历、获取信息、操作等。类似于Google的 UI测试框架UiAutomator,您也可以把他当做移动版UI测试框架使用 | | **4. 灵活的选择器** | AutoxJs 提供多种灵活的元素选择器,使您能够准确定位页面上的元素,以便执行各种操作和断言。 | | **5. 打包脚本为独立应用** | 支持使用e4x编写界面,并可以将JavaScript打包为apk文件,可用它来开发小工具应用 | | **6. 界面分析工具** | 带有界面分析工具,类似Android Studio的LayoutInspector,可以分析界面层次和范围、获取界面上的控件信息的 | | **7. 丰富的能力实现** | 提供截取屏幕、保存截图、图片找色、找图、OCR 等函数 | | **8. 可做Tasker插件使用** | 可作为Tasker插件使用,结合Tasker可胜任日常工作流 | | **9. 支持悬浮窗录制重放** | 悬浮窗录制和运行。支持使用Root权限以提供更强大的屏幕点击、滑动、录制功能和运行shell命令。录制录制可产生js文件或二进制文件,录制动作的回放比较流畅 | ### 2. 方案异同 1. **Autox.js 主要以自动化、工作流为目标**,更多地是方便日常生活工作,例如: - 启动游戏时自动屏蔽通知 - 一键与特定联系人微信视频(老人难以进行复杂的操作和子女进行微信视频) - 618 或日常打卡活动脚本 等 2. **Autox.js 兼容性更好**。以坐标为基础的按键精灵、脚本精灵很容易出现分辨率问题,而以控件为基础的 Auto.js 则没有这个问题。 3. **Autox.js 执行大部分任务不需要 root 权限**。只有需要精确坐标点击、滑动的相关函数才需要 root 权限。 4. **Autox.js 可以提供界面编写等功能**。不仅仅是作为一个脚本软件而存在。 5. **Autox.js 可应用于任何应用之上**。不仅仅用在自己开发的应用(优于原生重放)。 ## 二. YHDOS测试脚本实践 --- 1. 下单模块代码实现 2. 下单测试流程视频 3. 代码展示及文档实践 [YHDOS下单测试脚本代码](https://gitee.com/perry_fan/autox) [YHDOS自动化测试APK](https://pan.baidu.com/s/1v2-XUncx2vuVlHV4Pb10ew?pwd=2osi ) ## 三. 开发流程及常用API --- ### 1. 开发运行流程 1. AutoXJs App执行方式 2. 如何通过 app 找元素 3. 开发调试:autoxJS连接电脑开启VS code服务(AutoX Js插件) VSCode 当中调试代码可直接在 终端更新并调试运行 4. 打包成独立app ,安装后,开启**无障碍权限**即可运行 ### **2. 常用API** 自动化操作主要围绕:基于控件、坐标的相关API 1. **打开应用:launchApp("拼多多")** 2. **点击:原生一类、Flutter H5一类。原生找控件id、Flutter找坐标 id("").click、 clicks(x1,y1,x2,y2)** 3. **滑动:scrollUp() 下滑、scrollDown() 上滑** 4. **输入:id("").setText("123")、 clicks获取焦点再 classForName("EditText").setText("");** 5. **回退: back()** 6. 截屏找图找色: images.requestScreenCapture([landscape]) 7. OCR: paddle.ocr(img, path) 8. **结束: quit()** ### 3. 原理 1. 基于Android 无障碍模式 2. 脚本引擎: [Rhino 1.7.13](https://github.com/mozilla/rhino) 1. JS运行引擎适用于嵌入到Java程序中,并可执行在JVM上。 2. 与Java集成紧密,可以轻松调用Java类和方法。