移動(dòng)端自動(dòng)化 AutoJS 快速入門指南(上)
點(diǎn)擊上方 “AirPython”,選擇 “加為星標(biāo)”
第一時(shí)間關(guān)注 Python 原創(chuàng)干貨!

1. 前言
大家好,我是安果!
之前寫過很多 App 端自動(dòng)化的文章,大都基于 Appium、Airtest、無障礙服務(wù)等技術(shù)來實(shí)現(xiàn)的
其中,Appium 和 Airtest 編寫的自動(dòng)化腳本都依賴于 PC 端運(yùn)行,沒有辦法直接運(yùn)行在移動(dòng)端;無障礙服務(wù)需要單獨(dú)創(chuàng)建一個(gè) Android 項(xiàng)目,沒有完整的使用文檔,使用起來有一定的門檻
從本篇文章開始,介紹一款可以直接運(yùn)行在移動(dòng)端的自動(dòng)化工具:AutoJS
2. AutoJS?介紹
AutoJS 類似于按鍵精靈,它是 Android 平臺(tái)上的一款自動(dòng)化工具,它通過編寫?JavaScript?腳本,結(jié)合系統(tǒng)的「 無障礙服務(wù) 」對(duì) App?進(jìn)行自動(dòng)化操作
官方文檔:https://pro.autojs.org/docs/#/zh-cn/
它的優(yōu)勢(shì)包含:
使用 JS 編寫腳本,代碼可讀性強(qiáng)
腳本文件體積小,可以打包成 APK 直接安裝
擁有豐富的 UI 組件用于構(gòu)建 GUI 界面
非 Root 設(shè)備也能完成自動(dòng)化操作,可以擺脫 PC 直接運(yùn)行
提供多種元素定位方式,可以適配各種機(jī)型
官方文檔非常詳細(xì),學(xué)習(xí)成本低
3. 準(zhǔn)備
AutoJS 擁有多個(gè)版本,其中最常用的兩個(gè)版本分別是:Auto.js Pro、Auto.js 4.1.1 Beta
PS:由于某些原因,AutoJS 作者現(xiàn)在只對(duì)?Auto.js?Pro 版本進(jìn)行維護(hù),并且?Auto.js?Pro 對(duì)部分主流 App 進(jìn)行了限制
原因:https://pro.autojs.org/faq
后面的文章都是以?Auto.js 4.1.1 Beta 為例進(jìn)行講解( 文末有提供下載方式 )
首先,下載 VS Code 軟件和 2 個(gè)插件
2 個(gè)插件包含:
Auto.js-VSCodeExt
Auto.js-VSCodeExt-Fixed
其中,Auto.js-VSCodeExt-Fixed 對(duì)插件 Auto.js-VSCodeExt 進(jìn)行了部分優(yōu)化,更加方便我們調(diào)試腳本
然后,使用 VS Code 快捷鍵「?Ctrl/Command + Shift + P?」,選擇「?Auto.js:Start Server?」開啟?AutoJS 服務(wù)
接著,在真機(jī)或模擬器安裝 AutoJS 應(yīng)用及 AutoJS 打包工具應(yīng)用
PS:如果使用模擬器,推薦使用網(wǎng)易 MuMu 或雷電模擬器
打開 AutoJS?應(yīng)用,首次進(jìn)入應(yīng)用關(guān)閉更新提示對(duì)話框,并按照指引開啟「 無障礙服務(wù) 」

在軟件主界面,點(diǎn)擊左上角滑出側(cè)邊欄,依次打開無障礙服務(wù)、前臺(tái)服務(wù)、懸浮窗
前臺(tái)服務(wù)用于提升服務(wù)的存活率,防止服務(wù)被回收掉

懸浮窗會(huì)懸浮在任意界面之上,提供一些快捷功能操作,具體包含:
文件項(xiàng)目列表
會(huì)展示示例代碼及自己編寫的腳本、文件夾,可以快速完成腳本編輯、運(yùn)行、定時(shí)任務(wù)、打包等操作
腳本錄制
錄制腳本,僅適用于 Root 后的設(shè)備,由于它基于坐標(biāo)點(diǎn),適配性不強(qiáng),所以很少使用
元素控件定位
針對(duì)當(dāng)前界面進(jìn)行布局控件分析、布局層次分析
關(guān)閉正在執(zhí)行的腳本
一鍵停止所有正在執(zhí)行的腳本任務(wù)
更多設(shè)置
可以快速進(jìn)入到「無障礙服務(wù)」頁面、查看當(dāng)前應(yīng)用包名及 Activity 名稱等
最后,選中軟件側(cè)邊欄中的「 連接電腦 」這一項(xiàng),在對(duì)話框中輸入 PC?的 ip 地址
PS:AutoJS 連接電腦時(shí)如果沒有報(bào)錯(cuò),VS Code?通知欄和 OUTPUT 會(huì)展示設(shè)備連接成功的消息

4. 實(shí)戰(zhàn)一下
在完成上面的準(zhǔn)備工作后,我們就可以在 VS?Code 中使用 JS 編寫自動(dòng)化腳本了
這里以自動(dòng)刷抖音短視頻為例
首先,使用「 auto.waitFor() 」確保無障礙服務(wù)開啟成功
然后,使用?launchApp?+?應(yīng)用名稱,快速啟動(dòng)抖音 App
接著使用界面元素內(nèi)容 +?waitFor() 方法等待元素出現(xiàn),代表界面加載完成
最后,使用 Root +?Swipe + 坐標(biāo)點(diǎn)模擬界面滑動(dòng)
PS:這里為了方便,直接使用 Root 設(shè)備的 API 方法,如果是非 Root 設(shè)備,可以采用官方提供的滑動(dòng) API 或控件中心坐標(biāo)點(diǎn)擊事件來實(shí)現(xiàn)
完整代碼如下:
auto.waitFor()
//打開抖音App
var?appName?=?"抖音";
(appName);
//等待進(jìn)入主界面成功
text("首頁").waitFor();
toast("準(zhǔn)備開始滑動(dòng)")
//滑動(dòng)(Root+坐標(biāo)點(diǎn))
while?(true)?{
????Swipe(200,?1000,?210,?400,?500);
????//休息5s鐘
????sleep(5000);
????toast("繼續(xù)滑動(dòng)。。。")
}5. 最后
本篇文章介紹了 AutoJS?最基礎(chǔ)的使用步驟,并通過一個(gè)簡(jiǎn)單的實(shí)例講解其用法
文中提到的軟件我已經(jīng)上傳到后臺(tái),回復(fù)關(guān)鍵字「 autojs 」即可以獲取
如果你覺得文章還不錯(cuò),請(qǐng)大家?點(diǎn)贊、分享、留言?下,因?yàn)檫@將是我持續(xù)輸出更多優(yōu)質(zhì)文章的最強(qiáng)動(dòng)力!
END

