autojs sdk
基于 Autojs 的 APP、小程序自動(dòng)化測試 SDK,支持:啟動(dòng)應(yīng)用、停留等待、判斷存在、文本點(diǎn)擊、顏色點(diǎn)擊、循環(huán)點(diǎn)擊、坐標(biāo)拾取、語音播報(bào)、通知欄提示、音量調(diào)節(jié)、震動(dòng)等數(shù)十項(xiàng)能力。
項(xiàng)目主頁
https://github.com/kangour/autojs_sdk
autojs sdk 在 Auto.js 的基礎(chǔ)上,通過大量接口優(yōu)化提升了模塊的通用性,并進(jìn)行豐富的功能擴(kuò)展。
能干啥
使用 autojs sdk,一行代碼就能完成 語音播報(bào)
/任意類型文本點(diǎn)擊
/循環(huán)點(diǎn)擊
/坐標(biāo)拾取
/自動(dòng)權(quán)限控制
/自動(dòng)類型識(shí)別
/自動(dòng)按鍵監(jiān)聽
/通知欄實(shí)時(shí)提示
/自動(dòng)移除最近任務(wù)
/自動(dòng)解鎖
等數(shù)十項(xiàng)能力,更多能力陸續(xù)開放中。
開放的方法
包括但不限于以下方法,更多功能盡情期待:
start_app: 傳入應(yīng)用名稱,啟動(dòng)應(yīng)用。
wait_for: 等待文本出現(xiàn)
has_text: 當(dāng)前屏幕是否存在文本
click: 點(diǎn)擊文本或坐標(biāo)
click_item: 點(diǎn)擊文本
click_color: 點(diǎn)擊顏色
click_item_each: 點(diǎn)擊當(dāng)前屏幕的所有傳入文本
click_color_each: 點(diǎn)擊當(dāng)前屏幕的所有傳入顏色
wait_befor_click: 某文本出現(xiàn)之前的點(diǎn)擊
get_coord_by_color: 通過顏色獲取坐標(biāo)
get_coord_by_text: 獲取文本坐標(biāo)
set_volume: 設(shè)置設(shè)備音量
log/warn/error: 設(shè)置調(diào)試日志
簡單上手
編寫基于本 sdk 的應(yīng)用分為三個(gè)步驟
- 將 autojs_sdk/lib.js 導(dǎo)入運(yùn)行環(huán)境
- 在新創(chuàng)建的應(yīng)用中用
require('lib')
引入 auto_sdk - 編寫主函數(shù)
main()
并傳入lib.start_app()
這里展示僅用 5 行代碼開發(fā)一個(gè)基于網(wǎng)易云音樂的自動(dòng)播放測試應(yīng)用,實(shí)現(xiàn)的功能有 啟動(dòng)網(wǎng)易云音樂
后的 跳過開屏廣告
/播放每日推薦歌曲
/調(diào)節(jié)音量
。
// 導(dǎo)入:從 lib.js 導(dǎo)入需要的方法
let { start_app, click_item, set_volume, wait_befor_click } = require('lib.js');
// 編寫主函數(shù):程序啟動(dòng)后執(zhí)行的邏輯代碼。
function main() {
wait_befor_click('發(fā)現(xiàn)', '跳過')
click_item('發(fā)現(xiàn)')
click_item('每日推薦')
click_item('播放全部')
set_volume(30)
}
// 啟動(dòng)應(yīng)用:傳入?yún)?shù)依次為:主函數(shù),要啟動(dòng)的 App 名稱,當(dāng)前應(yīng)用描述,是否語音播報(bào)執(zhí)行狀態(tài)。
start_app(main, '網(wǎng)易云音樂', '播放日推', true)
高頻函數(shù)介紹
入口函數(shù)
start_app(callback, op_app, this_app, use_tts)
程序入口函數(shù),自動(dòng)完成解鎖、啟動(dòng) App、權(quán)限控制、按鍵監(jiān)聽、通知欄提示等操作。
- callback:軟件啟動(dòng)后執(zhí)行的函數(shù),如 main
- operation_app:需要啟動(dòng)的軟件,如 網(wǎng)易云音樂
- this_app:當(dāng)前程序的描述,如 播放每日推薦
- use_tts:執(zhí)行完畢后是否使用語音提示(默認(rèn)不啟用)
文本點(diǎn)擊
click_item(_text, tip_type)
自動(dòng)識(shí)別文本類型,并點(diǎn)擊文本。
- _text: 待點(diǎn)擊的文本
- tip_type:提示類型,如果傳入 no_tip,則不會(huì)在文字尋找失敗后給出提示彈窗(默認(rèn)啟用)
顏色點(diǎn)擊
click_color(_color, x, y, w, h)
在指定的區(qū)域點(diǎn)擊傳入的顏色
- _color:待點(diǎn)擊的顏色
- x:區(qū)域左上角的 x 坐標(biāo)
- y:區(qū)域左上角的 y 坐標(biāo)
- w:區(qū)域?qū)挾?/li>
- h:區(qū)域高度
等待前點(diǎn)擊
wait_befor_click(target, source)
在 target 出現(xiàn)前,如果出現(xiàn) source,就點(diǎn)擊。
例如進(jìn)入有開屏廣告的應(yīng)用前,點(diǎn)擊 “跳過廣告” 文本,有效節(jié)約啟動(dòng)時(shí)間:
wait_befor_click('首頁', '跳過')
開發(fā)者的話
還有很多函數(shù)等待你去發(fā)掘,比如日期時(shí)間處理,日志,坐標(biāo)處理等能力,均可參考 autojs_sdk/lib.js 的函數(shù)注釋,同時(shí)也希望你能和我一起來完善它,一起構(gòu)建一個(gè)易用的自動(dòng)化測試工具;你可以將自己基于 autojs_sdk 編寫的應(yīng)用提交到 example 目錄下。
項(xiàng)目交流群
autojs_sdk 群:984025847