移動端自動化 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.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 會展示設備連接成功的消息

4. 實戰一下

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

5. 最後

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

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

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

推薦閱讀
Postman 如何調試加密接口?

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

聊聊 Jmeter 如何併發執行 Python 腳本

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章