1. 程式人生 > 其它 >移動端自動化 AutoJS 快速入門指南

移動端自動化 AutoJS 快速入門指南

1. 前言

大家好,我是安果!

之前寫過很多 App 端自動化的文章,大都基於 Appium、Airtest、無障礙服務等技術來實現的

其中,Appium 和 Airtest 編寫的自動化指令碼都依賴於 PC 端執行,沒有辦法直接執行在移動端;無障礙服務需要單獨建立一個 Android 專案,沒有完整的使用文件,使用起來有一定的門檻

從本篇文章開始,介紹一款可以直接執行在移動端的自動化工具:AutoJS

2. AutoJS介紹

AutoJS 類似於按鍵精靈,它是 Android 平臺上的一款自動化工具,它通過編寫JavaScript指令碼,結合系統的「 無障礙服務 」對 App進行自動化操作

官方文件:

https://pro.autojs.org/docs/#/zh-cn/

它的優勢包含:

  • 使用 JS 編寫指令碼,程式碼可讀性強

  • 指令碼檔案體積小,可以打包成 APK 直接安裝

  • 擁有豐富的 UI 元件用於構建 GUI 介面

  • 非 Root 裝置也能完成自動化操作,可以擺脫 PC 直接執行

  • 提供多種元素定位方式,可以適配各種機型

  • 官方文件非常詳細,學習成本低

3. 準備

AutoJS 擁有多個版本,其中最常用的兩個版本分別是:Auto.js Pro、Auto.js 4.1.1 Beta

PS:由於某些原因,AutoJS 作者現在只對Auto.jsPro版本進行維護,並且Auto.jsPro對部分主流 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 會展示裝置連線成功的訊息

4. 實戰一下

在完成上面的準備工作後,我們就可以在 VSCode 中使用 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("繼續滑動。。。")
}

5. 最後

本篇文章介紹了 AutoJS最基礎的使用步驟,並通過一個簡單的例項講解其用法

文中提到的軟體我已經上傳到後臺,回覆關鍵字「 autojs 」即可以獲取

如果你覺得文章還不錯,請大家點贊、分享、留言下,因為這將是我持續輸出更多優質文章的最強動力!

推薦閱讀
Postman 如何除錯加密介面?

5 分鐘,使用內網穿透快速實現遠端桌面

聊聊 Jmeter 如何併發執行 Python 指令碼

聊聊 PC 端自動化最佳方案 - Pywinauto

聊聊 PC 端自動化最佳方案 - WinAppDriver

分享 Python 自動化及爬蟲、資料分析實戰乾貨,歡迎關注。