移動端自動化 AutoJS 快速入門指南(上)
- 前言
大家好,我是安果!
之前寫過很多 App 端自動化的文章,大都基於 Appium、Airtest、無障礙服務等技術來實現的
其中,Appium 和 Airtest 編寫的自動化腳本都依賴於 PC 端運行,沒有辦法直接運行在移動端;無障礙服務需要單獨創建一個 Android 項目,沒有完整的使用文檔,使用起來有一定的門檻
從本篇文章開始,介紹一款可以直接運行在移動端的自動化工具:AutoJS
- AutoJS 介紹
AutoJS 類似於按鍵精靈,它是 Android 平臺上的一款自動化工具,它通過編寫 JavaScript 腳本,結合系統的「 無障礙服務 」對 App 進行自動化操作
官方文檔:https://pro.autojs.org/docs/#/zh-cn/
它的優勢包含:
-
使用 JS 編寫腳本,代碼可讀性強
-
腳本文件體積小,可以打包成 APK 直接安裝
-
擁有豐富的 UI 組件用於構建 GUI 界面
-
非 Root 設備也能完成自動化操作,可以擺脫 PC 直接運行
-
提供多種元素定位方式,可以適配各種機型
-
官方文檔非常詳細,學習成本低
- 準備
AutoJS 擁有多個版本,其中最常用的兩個版本分別是:Auto.js Pro、Auto.js 4.1.1 Beta
PS:由於某些原因,AutoJS 作者現在只對 Auto.js Pro 版本進行維護,並且 Auto.js Pro 對部分主流 App 進行了限制
原因:https://pro.autojs.org/faq
後面的文章都是以 Auto.js 4.1.1 Beta 爲例進行講解( 文末有提供下載方式 )
首先,下載 VS Code 軟件和 2 個插件
2 個插件包含:
-
Auto.js-VSCodeExt
-
Auto.js-VSCodeExt-Fixed
其中,Auto.js-VSCodeExt-Fixed 對插件 Auto.js-VSCodeExt 進行了部分優化,更加方便我們調試腳本
然後,使用 VS Code 快捷鍵「 Ctrl/Command + Shift + P 」,選擇「 Auto.js:Start Server 」開啓 AutoJS 服務
接着,在真機或模擬器安裝 AutoJS 應用及 AutoJS 打包工具應用
PS:如果使用模擬器,推薦使用網易 MuMu 或雷電模擬器
打開 AutoJS 應用,首次進入應用關閉更新提示對話框,並按照指引開啓「 無障礙服務 」
在軟件主界面,點擊左上角滑出側邊欄,依次打開無障礙服務、前臺服務、懸浮窗
前臺服務用於提升服務的存活率,防止服務被回收掉
懸浮窗會懸浮在任意界面之上,提供一些快捷功能操作,具體包含:
-
文件項目列表
會展示示例代碼及自己編寫的腳本、文件夾,可以快速完成腳本編輯、運行、定時任務、打包等操作
-
腳本錄製
錄製腳本,僅適用於 Root 後的設備,由於它基於座標點,適配性不強,所以很少使用
-
元素控件定位
針對當前界面進行佈局控件分析、佈局層次分析
-
關閉正在執行的腳本
一鍵停止所有正在執行的腳本任務
-
更多設置
可以快速進入到「無障礙服務」頁面、查看當前應用包名及 Activity 名稱等
最後,選中軟件側邊欄中的「 連接電腦 」這一項,在對話框中輸入 PC 的 ip 地址
PS:AutoJS 連接電腦時如果沒有報錯,VS Code 通知欄和 OUTPUT 會展示設備連接成功的消息
- 實戰一下
在完成上面的準備工作後,我們就可以在 VS Code 中使用 JS 編寫自動化腳本了
這裏以自動刷抖音短視頻爲例
首先,使用「 auto.waitFor() 」確保無障礙服務開啓成功
然後,使用 launchApp + 應用名稱,快速啓動抖音 App
接着使用界面元素內容 + waitFor() 方法等待元素出現,代表界面加載完成
最後,使用 Root + Swipe + 座標點模擬界面滑動
PS:這裏爲了方便,直接使用 Root 設備的 API 方法,如果是非 Root 設備,可以採用官方提供的滑動 API 或控件中心座標點擊事件來實現
完整代碼如下:
auto.waitFor()
//打開抖音App
var appName = "抖音";
(appName);
//等待進入主界面成功
text("首頁").waitFor();
toast("準備開始滑動")
//滑動(Root+座標點)
while (true) {
Swipe(200, 1000, 210, 400, 500);
//休息5s鍾
sleep(5000);
toast("繼續滑動。。。")
}
- 最後
本篇文章介紹了 AutoJS 最基礎的使用步驟,並通過一個簡單的實例講解其用法
文中提到的軟件我已經上傳到後臺,回覆關鍵字「 autojs 」即可以獲取
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/Qe3gksn02NCGJW_gS7Rnnw