1.前言大家好,我是安国!之前写过很多关于App端自动化的文章,大部分都是基于Appium、Airtest、无障碍服务等技术实现的。其中,Appium和Airtest编写的自动化脚本依赖PC端运行,没有办法直接在移动端运行;无障碍该服务需要单独创建Android工程,没有完整的使用文档,使用有一定门槛。从本文开始介绍一款可以直接在移动端运行的自动化工具:AutoJS2。AutoJS介绍AutoJS类似于按钮精灵,是Android平台上的一个自动化工具,通过编写JavaScript脚本结合系统的“无障碍服务”实现App的自动化官方文档:https://pro.autojs.org/docs/#...它的优点包括:使用JS编写脚本,代码可读性强。脚本文件体积小,可以打包成APK直接安装。有丰富的UI组件用于构建GUI界面。免Root设备也能完成自动化操作,无需PC直接运行提供多种元素定位方式,可适配各种机型。官方文档很详细,学习成本低。3.准备AutoJS有多个版本,最常用的两个版本是:Auto.jsPro,Auto.js4.1.1BetaPS:由于某些原因,AutoJS作者现在只维护Auto.jsPro版本,和Auto.jsPro限制部分主流app原因:https://pro.autojs.org/faq以下文章均以Auto.js4.1.1Beta为例进行讲解(文末提供下载方法)首先,下载VSCode软件和2个插件。2个插件包括:Auto.js-VSCodeExtAuto.js-VSCodeExt-Fixed其中,Auto.js-VSCodeExt-Fixed对插件Auto.js-VSCodeExt进行了部分优化,更方便我们调试脚本.然后,使用VSCode快捷键“Ctrl/Command+Shift+P”,选择“Auto.js:StartServer”启动AutoJS服务,然后在真机上安装AutoJS应用和AutoJS打包工具应用PS或模拟器:如果使用模拟器,建议使用网易MuMu或迅雷模拟器打开AutoJS应用,首次进入应用关闭更新提示对话框,按照提示开启“无障碍服务”。在软件主界面,点击左上角滑出侧边栏,打开无障碍服务、前台服务、浮窗前台服务,以提高服务存活率,防止服务被回收.悬浮窗会悬浮在任意界面,并提供一些快捷功能操作,具体包括:显示文件项列表示例代码和自己编写的脚本和文件夹,可以快速完成脚本编辑、运行、定时任务、打包和其他操作。因此,元素控件定位很少用于当前界面的布局控件分析和布局层次结构分析。关闭正在执行的脚本,一键停止所有正在执行的脚本任务。更多设置,可快速进入“无障碍服务”页面,查看当前应用包。名称和Activity名称等最后在软件侧边栏选择“连接到电脑”项,在对话框中输入PC的ip地址PS:如果AutoJS连接电脑没有报错,VSCode的通知栏和OUTPUT会显示设备连接成功的信息4.实战完成以上准备工作后,我们就可以在VSCode中使用JS编写自动化脚本了,这里以自动刷单抖音短视频为例首先,使用“auto.waitFor()”确保无障碍服务开启成功后,使用launchApp+应用名快速启动App然后使用界面元素内容+waitFor()方法等待元素出现,这意味着界面已加载。最后使用Root+Swipe+坐标点模拟界面滑动PS:这里为了方便,直接使用Root设备的API方法。如果是非Root设备,可以使用官方的滑动API或者控制中心坐标点击事件实现,完整代码如下:auto.waitFor()//Open抖音AppvarappName="抖音";(appName);//等待进入主界面成功text("Home").waitFor();toast("准备开始滑动")//滑动(根+坐标点)while(true){Swipe(200,1000,210,400,500);//休息5秒sleep(5000);toast("Continuesliding...")}5.最后,本文介绍使用AutoJS最基本的步骤和用一个简单的例子解释一下法语提到的软件,我已经上传到后台了,回复关键词“autojs”即可获取。如果觉得文章还不错,请点赞分享留言,因为这将是我持续输出更多优质文章的最强动力!推荐阅读Postman如何调试加密接口5分钟使用内网穿透快速实现远程桌面浅谈Jmeter如何并发执行Python脚本.谈谈PC端自动化最佳方案-Pywinauto谈谈PC端自动化最佳方案-Win应用驱动程序
