AirtestIDE連接安卓真機及常見問題


上期回顧:AirtestIDE基本功能(二)

 


 

以下基於

python3.7;airtest1.1.8;pocoui1.0.81;airtestIDE1.2.8

USB連接

用airtestIDE連接安卓真機之前,得先確保你用PC安裝apk沒問題。

1. 插上手機,使PC可以識別出手機,一般情況下插上會自動識別,不能識別的自己去手機官網安裝驅動。

2. 打開“開發者選項”,每款手機各不一樣,這個自己搜索一下。

3. 在“開發者選項”中打開‘開啟開發者選項’、‘USB調試’、‘USB安裝’、‘允許模擬位置’。如果是第一次開啟USB調試,手機上會彈出確認界面,點確定

 

 

4. 退出各種手機助手,保證進程也要殺掉。

5. 如果本機安裝了adb環境、模擬器、手機助手,全局搜索adb.exe,全部替換為airtestIDE文件夾下的。

現在可以在airtestIDE里連接了,默認插上手機后會自動刷新設備列表,如果沒刷新就手動點一下‘刷新ADB’。

圖片

 

 

點擊設備后的‘connect’按鈕,就連接上真機了。如果你的手機連不上,或者一閃又退出了。可以嘗試添加一下連接選項,選中上圖中的‘Use Javacap’,不行就再選上‘Use ADB Orientation’。

現在airtestIDE1.2.8有個BUG,就是連接手機后,再斷開,再連的時候連不上,可以嘗試重啟IDE

如果要斷開連接,點擊上面的工具按鈕,點‘斷開當前設備’

圖片

 

 

無線連接

不推薦,除非你的WIFI環境非常穩定。

  1. 手機USB線連接PC,PC執行命令adb tcpip 5555,5555是端口號,可以是其他數字

  2. 進入手機wifi設備,查看IP地址,比如這里是:192.168.1.1

  3. 撥掉USB線,在airtestIDE中選中‘遠程設備連接’,輸入adb connect 192.168.1.1:5555,點‘連接’

     

     

    圖片

遠程連接

同無線連接一樣,如果手機是在雲平台下(需要自己搭建),也可以用adb connect ip:port去連接

常見問題

一、連接問題

如果無法連接,首先確保本機環境的adb可以連接。部分手機在連上USB線后需要選擇‘MTP模式’進行連接。

若能夠在 adb devices 指令的返回結果中看到自己的設備,但是無法使用AirtestIDE連接手機,可以繼續檢查以下幾個方面:

  • 在設備接入IDE進行初始化時,還會在手機上安裝一個RotationWatcher.apk的應用(用於檢測手機屏幕是否旋轉),可能會在手機上有安裝apk的彈窗提醒,需要手工點擊同意安裝

  • 如果是已root的手機,可能會因為本地文件夾權限已被修改,導致Airtest沒有權限將相關文件放入手機內,請檢查手機內的 /data/local/tmp 文件夾是否有寫入權限

  • 如果手機曾經安裝過 STF 庫,可能會出現不能正常點擊屏幕等問題,可以嘗試清空原先安裝的STF相關文件(執行指令adb shell rm /data/local/tmp/mini*)后,再重新將手機連接到IDE中進行初始化

  • 部分手機雖然能成功安裝 pocoservices.apk ,但是在啟動中可能會不斷提示重新安裝、無法正確啟動,此時需要檢查手機所處的網絡是否是特殊網絡(例如開了代理)、手機的開發者選項中的設置是否開啟(涉及到USB安裝和操作相關的選項,部分型號設備需要選擇取消權限監控等)。如果是VIVO/OPPO品牌手機,可能需要設置手機默認輸入法為yosemite。

二、部分廠商設備特殊問題

小米

  • 在系統設置的語言和輸入法中,取消‘安全鍵盤’的選中狀態

  • 部分小米手機在連接失敗時,報錯Failure [INSTALL_FAILED_USER_RESTRICTED: Install canceled by user],是因為在Airtest試圖向手機中安裝apk但是被手機自動攔截了。查看手機設置-》授權管理-》USB安裝管理-》去掉USB安裝應用的相關限制

三星

  • 顯示-屏幕分辨率調到最大:
    部分手機設備(如部分型號三星手機)在連上AirtestIDE后,顯示出的手機畫面不能撐滿整個屏幕,請在“設置”-“顯示”中將“屏幕分辨率”調至 “WQHD”

  • 在開發者選項中,打開未知來源、取消權限監控。

華為

  1. 輸入法設置中,取消安全輸入

  2. 開發者選項->監控ADB安裝應用取消,打開僅充電模式下允許調試

  3. 權限監控->設置->自動配置權限

  4. 部分華為型號的手機,可能出現點擊位置與實際位置不符的情況(mate20pro, mate7等),需要在 設置-顯示-屏幕分辨率 中,將分辨率設置為最高即可。

  5. 如果華為手機出現poco在啟動后十幾秒內自動斷開的話,可以檢查一下手機管家的版本號是否大於8.0,如果是的話,就在手機管家->啟動管理里面,找到pocoservice,勾選允許自啟動和允許后台活動

vivo

  1. 取消安全輸入,如果遇到Poco初始化失敗、text接口無法調用的問題,可以在輸入法設置中將Yosemite輸入法設置為默認

  2. 部分機型需要 在開發者選項中打開安全權限 ,否則可能在初始化poco的時候報錯

  3. 如果vivo輸密碼的時候出現黑屏,可以在嘗試把安全性設置里的 安全鍵盤 關閉掉再重試。如果沒找到 安全鍵盤 的設置,可以找一下vivo的設置->安全與隱私-> 防止惡意截屏錄屏 ,然后把防止惡意截屏錄屏關掉就好了。

  4. 如果有 usb模擬點擊 選項的話,一定要點開,否則運行腳本可能會報錯:

OPPO

  1. 開發者選項的最底部,勾選 禁止監控權限

  2. 部分OPPO機型在初始化Poco時,或者調用 text() 接口時,會失敗報錯,原因可能是因為安裝或者切換Yosemite輸入法失敗(需要輸入OPPO賬號密碼才能切換)。此時可以先到系統設置-輸入法設置里,將Yosemite輸入法設置為默認輸入法,如果尚未安裝Yosemite輸入法,可以在AirtestIDE\airtest\core\android\static\apks目錄下找到它並且手工安裝到手機上之后,即可開始使用Poco功能以及 text() 接口。

魅族

魅族手機部分型號無法直接通過ADB進行連接,解決方案:
https://www.zhihu.com/question/26245688/answer/37621798

LG

  1. LG手機需要選擇充電模式才能正確打開USB調試,識別序列號:

  2. 在開發者選項中勾選允許模仿位置

一加

一加手機在使用poco的時候,會出現重復安裝的問題,報錯:

unable to launch AndroiduiautomationPoco

此時需要將pocoservice.apk的電池優化關掉,改成“不優化”

 

三、全面屏問題

IDE投屏位置發生偏移,自定義渲染分辨率

在一些不支持全面屏手機的app,畫面不能充滿整個屏幕的時候,出現黑邊,poco定位發生偏移。

 

 

圖片

進入設置,勾選采用渲染分辨率,然后輸入豎屏模式下的渲染分辨率,點擊OK即可. 渲染分辨率為用逗號隔開的四個數字,數字分別代表豎屏模式下的 offset_x, offset_y, offset_width, offset_heigt

 

 

圖片

比如本例中在 1080*2220 分辨率下的大魚來了,它在手機上會有兩個黑邊,上黑邊高度為 100px ,畫面高度為2020px ,下黑邊高度為 100px ,所以它的渲染分辨率則為(0 ,100 ,1080 ,2020)

 

 

圖片

腳本運行發生偏移

當app不支持全面屏,出現黑邊,運行poco點擊的腳本的時候,會發生偏移,像下圖執行poco("PauseButton").click()一樣,實際點擊位置不符合預期。

 

 

圖片

確保當前poco或IDE為最新版本,關閉下圖的 虛擬鍵盤,然后在腳本中調用poco.use_render_resolution(), 讓poco切換為當前畫面渲染分辨率,運行腳本,即可准確點擊。

 

 

圖片

對於Airtest無法支持的全面屏設備,可以自定義渲染分辨率::

poco.use_render_resolution(True, (0 ,100 ,1080 ,2020))

如果頁面切換,從不支持全面屏的畫面切換到支持全面屏的畫面,即有黑邊的頁面->無黑邊頁面,需要重新設置poco分辨率,傳入"False",poco.use_render_resolution(False),poco會切換成手機完整分辨率。

如當前為多機運行,同時存在普通屏手機和全面屏手機,而app不支持全面屏的時候,需要關閉所有手機的虛擬鍵盤,腳本按照支持全面屏的腳本編寫。

 

四、其他常見問題

部分設備“返回”-“主頁”-“菜單”等按鈕失效

  • 部分設備不能正確響應一些系統按鈕操作,例如 HOME、BACK等:vivo Y55A、vivo Y67、vivo X20 Plus(屏幕指紋版)、紅米 3X (Redmi 3X)、小米 5C (Xiaomi 5C)

  • 部分機型由於系統定制原因,text輸入文字時,會發生腳本異常退出問題:vivo Y55A
    請在腳本內自行 catch 錯誤,或使用poco("xxx").set_text("input")

使用text()接口無法在密碼框中輸入密碼或出現IDE窗口卡死

部分廠商(例如華為、VIVO等)的某些型號手機限制了密碼框的輸入。這部分手機設置內的安全選項默認是開啟狀態,所以強制在輸入密碼時必須使用 系統鍵盤輸入 (即安全輸入鍵盤)。這樣會導致需要輸入密碼時,直接使用airtest的text()會無法輸入內容,所以需要手動關閉安全輸入選項后,才能正常輸入密碼內容:

 

 

另外有部分VIVO手機,在腳本點擊到輸入密碼窗口的時候,IDE的可視化窗口可能會卡死,不會實時更新手機屏幕畫面,導致腳本會報找不到圖片的錯誤。

這時候可以關閉手機上防惡意截錄屏選項和安全輸入選項,就不會出現腳本點擊到輸入密碼框時,IDE可視化窗口卡死的情況:

 

 

刷出重復設備

刷新時發現兩台同樣的設備,狀態各為device和offline。
一般因為開啟了手機助手,關掉后再次刷新即可。

手機能夠連接,但是設備畫面旋向不對

連接設備時勾選use ADB orientation參數

手機能夠連接,但是無法點擊屏幕

如果手機能正常連接到AirtestIDE,但是使用鼠標操作屏幕無響應,提示 minitouch 初始化失敗 ,請首先確認,手機設置中是否有 允許模擬點擊位置 選項,並且處於激活狀態(主要是MIUI手機有這個設置)

如果問題依舊,可以嘗試先斷開手機,在connect按鈕的下拉菜單中勾選 Use ADB touch。

 

 

然后再點擊connect按鈕連接手機,此時應該可以使用鼠標操作屏幕了。

如果遇到報錯:

Unable to open device /dev/input/event3 for inspectionopen: Permission denied

可以運行指令adb shell chmod 777 /dev/input/*來賦予/dev/input目錄權限(該操作可能需要手機root權限,如何使用adb shell請自行查詢網上資料)

 

---------------------------------------------------------------------------------

關注微信公眾號即可在手機上查閱,並可接收更多測試分享~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM