摘要:使用包控制手機(jī)時(shí),需要在手機(jī)上安裝在電腦中使用彈出運(yùn)行框,在框內(nèi)輸入調(diào)用命令行窗口。具備較多功能,在此不再贅述,百度具有較多資料。調(diào)試工具用于查看手機(jī)當(dāng)前狀態(tài)用瀏覽器控制手機(jī)調(diào)試手機(jī),還可以實(shí)時(shí)的查找控件中的屬性以及其它屬性值等等。
# GitHub地址:# https://github.com/openatx/uiautomator2pip install uiautomator2 # 這個(gè)包是用于控制手機(jī)pip install pillow # 這個(gè)包用于截圖pip install -U weditor # 這個(gè)包是可以調(diào)試,在瀏覽器頁(yè)面上直觀的獲取某個(gè)控件名稱(chēng)
adb全稱(chēng)叫做android調(diào)試橋(Android?Debug Bridge),是Android官方谷歌公司開(kāi)發(fā)的連接電腦與手機(jī)的插件,一般來(lái)說(shuō)是包含在Android Studio之中下載的,當(dāng)然我們?cè)诖颂幱貌坏絊tudio的其它功能,因此只下載adb包即可。
下載鏈接如下:
SDK Platform Tools 版本說(shuō)明 ?|? Android 開(kāi)發(fā)者 ?|? Android DevelopersAndroid SDK Platform-Tools 是 Android SDK 的一個(gè)組件。https://developer.android.google.cn/studio/releases/platform-tools?hl=zh_cn這個(gè)鏈接下載的名稱(chēng)叫做Platform Tools,其中是包含adb工具的,其名稱(chēng)為adb.exe,與之相關(guān)的還有幾個(gè)以ADB開(kāi)頭名稱(chēng)的文件。將此壓縮包解壓之后,放在系統(tǒng)的任意位置,然后將此位置加入Path環(huán)境變量即可。這樣我們就可以在系統(tǒng)的任意位置調(diào)用到此exe文件。
將手機(jī)通過(guò)USB數(shù)據(jù)線(xiàn)連接至電腦,打開(kāi)開(kāi)發(fā)者模式,并開(kāi)啟USB調(diào)試,并且開(kāi)啟允許電腦通過(guò)USB向手機(jī)安裝軟件等權(quán)限。接收電腦發(fā)來(lái)的鏈接秘鑰并鏈接。
(使用Python包uiautomator2控制手機(jī)時(shí),需要在手機(jī)上安裝app)
在電腦中使用WIN+R彈出運(yùn)行框,在框內(nèi)輸入cmd調(diào)用命令行窗口。在窗口中輸入如下命令:
adb devices
窗口會(huì)打印當(dāng)前USB所連接的手機(jī)信息,如果沒(méi)有手機(jī)連接,將會(huì)顯示如下信息,這時(shí)需要檢查手機(jī)連接的USB線(xiàn)是否正常,并且檢查開(kāi)發(fā)者模式是否打開(kāi)等等。當(dāng)然如果直接報(bào)錯(cuò)找不到adb命令,則需要檢查adb相關(guān)配置是否完成。
C:/Users/Administrator>adb devicesList of devices attachedC:/Users/Administrator>|
如果完全正常,且手機(jī)已經(jīng)鏈接,則將會(huì)顯示如下信息:
C:/Users/Administrator>adb devicesList of devices attached9phqaetw deviceafdsaf4 deviceC:/Users/Administrator>|
在List of devices attached這一行之后,有幾行信息,便說(shuō)明已經(jīng)有幾個(gè)設(shè)備已經(jīng)鏈接到ADB調(diào)試橋,而在每一行開(kāi)頭,device之前的那一串字符串,便是設(shè)備的標(biāo)志碼。通過(guò)設(shè)備的標(biāo)志碼,我們就可以鏈接到指定的設(shè)備,當(dāng)然如果本臺(tái)電腦上只鏈接有一塊手機(jī),此標(biāo)志碼可以不記,如果鏈接有多塊手機(jī),則需要記錄每一個(gè)標(biāo)志碼,以及標(biāo)志碼對(duì)應(yīng)的實(shí)際手機(jī)設(shè)備。
如果不知道哪個(gè)標(biāo)志碼對(duì)應(yīng)哪臺(tái)設(shè)備,則可以將其中一個(gè)USB拔出,再輸入命令,反復(fù)查看,以此確認(rèn)標(biāo)志碼與設(shè)備之間一一對(duì)應(yīng)的關(guān)系。
在命令行執(zhí)行如下命令,在手機(jī)上安裝ATX軟件。如果手機(jī)上沒(méi)有安裝此APP,uiautomator2將無(wú)法控制手機(jī)。
python -m uiautomator2 init
比較簡(jiǎn)單的控制方式是:
# 引用uiautomator2包import uiautomator2 as u2# 使用設(shè)備唯一標(biāo)志碼鏈接設(shè)備,其中9phqaetw是通過(guò)adb獲取的設(shè)備標(biāo)志碼d = u2.connect("9phqaetw") # d = u2.connect() # 當(dāng)前只有一個(gè)設(shè)備時(shí)可以用這個(gè)d.unlock() # 解鎖屏幕x,y = 100,100d.click(x,y) # 點(diǎn)擊屏幕坐標(biāo)為 x,y 的點(diǎn)# 雙擊屏幕d.double_click(x,y)# 長(zhǎng)按d.long_click(x,y)# 單機(jī)屏幕上字符為9的控件d(text="9").click()
例如我們寫(xiě)一個(gè)比較簡(jiǎn)單的解鎖屏幕代碼,假設(shè)鎖屏密碼是486570:
# 引用uiautomator2包import uiautomator2 as u2import time# 使用設(shè)備唯一標(biāo)志碼鏈接設(shè)備,其中9phqaetw是通過(guò)adb獲取的設(shè)備標(biāo)志碼d = u2.connect("9phqaetw") # d = u2.connect() # 當(dāng)前只有一個(gè)設(shè)備時(shí)可以用這個(gè)d.unlock() # 解鎖屏幕time.sleep(2) # 等待手機(jī)反應(yīng)2秒鐘# 鎖屏密碼password = "486570"# 輸入鎖屏密碼for c in password: d(text=c).click() time.sleep(0.3) # 間隔0.3秒單擊一次屏幕
上述代碼運(yùn)行成功后,基本上就可以控制手機(jī)了。uiautomator2具備較多功能,在此不再贅述,百度具有較多資料。
weditor用于查看手機(jī)當(dāng)前狀態(tài)、用瀏覽器控制手機(jī)、調(diào)試手機(jī),還可以實(shí)時(shí)的查找控件中的text屬性以及其它屬性值等等。
第一種打開(kāi)方式是在命令窗口輸入:
python -m weditor
第二種方式是在桌面創(chuàng)建快捷方式,在命令窗口輸入:
weditor --shortcut
在桌面會(huì)自動(dòng)創(chuàng)建一個(gè)名為WEditor的圖標(biāo),雙擊即可。
打開(kāi)weditor后會(huì)出現(xiàn)一個(gè)信息調(diào)試框,并且會(huì)自動(dòng)打開(kāi)默認(rèn)瀏覽器跳轉(zhuǎn)至調(diào)試頁(yè)面,關(guān)閉調(diào)試框和瀏覽器頁(yè)面其中任一個(gè),weditor即被關(guān)閉。注意如果默認(rèn)瀏覽器為IE的話(huà),不知道支持與否,或可自行嘗試。調(diào)試頁(yè)面如下圖所示:
在頂部可以切換靜態(tài)調(diào)試還是實(shí)時(shí),如果是實(shí)時(shí)情況下,則會(huì)跟隨手機(jī)進(jìn)行實(shí)時(shí)界面切換。
最左側(cè)為手機(jī)界面;中間根據(jù)點(diǎn)選屏幕空間的不同,顯示不同的控件屬性;最右側(cè)可使用Python代碼進(jìn)行書(shū)寫(xiě)和調(diào)試。?
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/123208.html
摘要:幾天前我在考慮使用從發(fā)送消息。當(dāng)應(yīng)用程序構(gòu)建時(shí),我想到了使用手機(jī)本身自動(dòng)發(fā)送消息的想法。我找到了一個(gè)命令行工具,它可以幫助人們?cè)诓唤佑|手機(jī)的情況下控制手機(jī)。 幾天前...
摘要:代碼運(yùn)行完成以后,微信被打開(kāi)了。能不能像前面打開(kāi)知乎一樣,使用這個(gè)屬性呢也行,也不行?;瑒?dòng)屏幕使用的命令為,滑動(dòng)屏幕需要使用坐標(biāo)信息。單獨(dú)使用控制手機(jī)在 想開(kāi)發(fā)網(wǎng)頁(yè)爬蟲(chóng),發(fā)現(xiàn)被反爬了?想對(duì) App 抓包,發(fā)現(xiàn)數(shù)據(jù)被加密了?不要擔(dān)心,使用 Airtest 開(kāi)發(fā) App 爬蟲(chóng),只要人眼能看到,你就能抓到,最快只需要2分鐘,兼容 Unity3D、Cocos2dx-*、Android 原生 A...
摘要:首先要打開(kāi)微信,進(jìn)入到指定的群聊,識(shí)別微信紅包執(zhí)行搶紅包的動(dòng)作。是一款基于控件識(shí)別的自動(dòng)化測(cè)試框架,目前支持原生原生微信小程序,也可以在其他引擎中自行接入來(lái)使用。 showImg(https://segmentfault.com/img/remote/1460000019438856); 目錄:0 引言1 環(huán)境2 需求分析3 前置準(zhǔn)備4 搶紅包流程回顧5 代碼梳理6 后記 0 引言 提...
閱讀 2984·2021-11-23 09:51
閱讀 3258·2021-11-12 10:36
閱讀 3267·2021-09-27 13:37
閱讀 3237·2021-08-17 10:15
閱讀 2651·2019-08-30 15:55
閱讀 2832·2019-08-30 13:07
閱讀 849·2019-08-29 16:32
閱讀 2697·2019-08-26 12:00