玩轉(zhuǎn)手機自動化測試
點擊上方“IT共享之家”,進行關(guān)注
回復“資料”可獲贈Python學習福利
仰天大笑出門去,我輩豈是蓬蒿人。
大家好,我是皮皮。
前言
之前我們玩過一些手機自動化軟件,比如Airtest,ADB,通過這些軟件我們可以和自己的手機進行關(guān)聯(lián),并且使用程序來代替我們本人來操作手機,今天我們要說的是另一款給力的自動化APP,這里要介紹的并不是Windows平臺上的可執(zhí)行文件哦,而是Android平臺上的JavaScript IDE,更重要的一點就是這個工具是國人開發(fā)的,必須支持一個不是。而且AutoJs兼容性更好,傳統(tǒng)的按鍵精靈,腳本精靈,雖然上手快,門檻低,但是他們是以坐標為基礎(chǔ),很容易出現(xiàn)分辨率的問題,而AutoJs則是以控件為基礎(chǔ),因而更強大,并且我們在玩自動化時是不需要Root的;那么,廢話不多說,趕快讓我們一睹為快這款強大的IDE吧。
一、安裝AutoJs
為了運行Autojs腳本,我們需要使用Android平臺,這里小編選擇的是夜神模擬器,將我們下載好的AutoJs.apk安裝到夜神模擬器中,下載地址:
https://u062.com/file/7715018-454641893然后我們開啟無障礙服務(wù),即可打開Autojs并正常運行,如圖:

二、基本使用大全
要想進行腳本的編寫,我們需要點擊藍色圓圈里的加號創(chuàng)建一個腳本文件,下面我們來創(chuàng)建一個簡單的腳本,如下:
1.選擇器
因為AutoJs有著JavaScript的部分特性,因此他也有選擇器可供我們選擇元素,總共有四種,如下:
ID 選擇器Text 選擇器ClassName 選擇器Desc 選擇器
2.打開應(yīng)用
在打開之前我們需要對Autojs進行授權(quán),很簡單,如下:
auto();//授權(quán)auto.js然后我們就可以打開對應(yīng)應(yīng)用,比如我想打開瀏覽器,如下:
launchApp('瀏覽器')#打開瀏覽器如果我們想自定義打開的應(yīng)用了,通過輸入的方法,增加一個交互,可以這樣做,如下:
var app=rawInput("","");launchApp(app);
我們還可以添加一個控制臺,顯示我們操作的進度,如下:
auto();console.show() //顯示控制臺log('hello') //控制臺輸出console.log('開啟瀏覽器') //控制臺輸出sleep(1000)//休眠var app=rawInput("",""); //自定義輸入launchApp(app);//運行App


我們還可以檢查是否有Root權(quán)限,如下:
if(auto.waitFor()){toastLog('有權(quán)限')}else{toastLog('無權(quán)限')}
3.屏幕操作
setScreenMetrics(1080,1920); #屏幕大小toast("歡迎大家來到我的世界,Helloworld ,520");#屏幕通知toastLog(‘hello’) #屏幕通知+控制臺日志images.requestScreenCapture() #向系統(tǒng)申請屏幕截圖權(quán)限images.captureScreen() #截圖swipe(100,200,130,320,230)#滑動屏幕,只支持安卓7.0以上img=images.load('讀取本地或者網(wǎng)絡(luò)圖片')#讀取images.save('圖片來源','圖片名')#保存var c=findColor(img.'顏色十六進制')#尋找對應(yīng)顏色對象c.x c.y #對應(yīng)顏色的橫縱坐標images.findColorEquals(img,color[, x, y, width, height]) #區(qū)域找色images.findColorInRegion(img,color[, x, y, width, height])device.width #取屏幕寬度device.height #取屏幕高度
toast('歡迎光臨')if(requestScreenCapture()){console.log('截圖成功')}else{console.log('截圖失敗')}


我們還可以保存網(wǎng)絡(luò)上的圖片到設(shè)備中,如:
var pic=images.load('http://wnk5.fulitmm.cn/comm/2020053009318366378.jpg');images.save(pic,'/sdcard/mm.jpg')

另外我們還可以通過找色來定位目標,如圖:

可以看到橫縱標125。
4.返回退出
back() #返回exit() #退出
5.休眠
如果我們想讓程序等待一段時間,可以使用休眠功能,如下:
sleep(3000);#休眠6.文本操作
有時候我們進入應(yīng)用需要進行一些操作,這個時候我們可以通過找尋應(yīng)用中文本的位置來進行精確操作,如下:
text('請輸入網(wǎng)址')#找文本7.Auto Js UI
這里要說的是,雖然我們之前的操作比較方便,但是如果你想把這些操作做成一個界面的話,就需要用到UI了,這樣就會更方便了,像一些自動化工具,比如自動電擊器就是這個原理了,我們來看一個最簡單的例子,如下:
"ui";ui.layout(<vertical foreground="#BBFFFF" bg='#F5F5F5'><input id="name" text="請輸入名字"/><button id="one" text="按鈕1" alpha="0.6" w="200dp" textSize="10sp"/><button class="two" w="100dp" text="按鈕2"/><horizontal><button w="auto" alpha="0.8" text="按鈕3"/><button w="*" text="按鈕4"/></horizontal></vertical>);ui.one.click(function(){var n=ui.name.getText();toast(n)})

其實UI控件中的方法基本大部分和JavaScript的方法一樣,掌握了JavaScript你就可以非常輕松的使用UI控件了。
三、總結(jié)
Autojs主要就是用于我們的手機設(shè)備的腳本編寫,所以與ADB也會有很多相似之處,可以這么說,只要你掌握了ADB和JavaScript,掌握這就跟喝水那么簡單。
對了,還要跟大家補充一句,那就是Autojs的在線官方文檔地址:
https://hyb1996.github.io/AutoJs-Docs/#/上面介紹的有很多方面,如果你不方便每次都聯(lián)網(wǎng)查詢的話,可以結(jié)合咱們前幾天講的整站爬取方案哦。
看完本文有收獲?請轉(zhuǎn)發(fā)分享給更多的人
IT共享之家
入群請在微信后臺回復【入群】
------------------- End -------------------
往期精彩文章推薦:
