monkeyrunner的使用過程中遇到的問題整理


 

用macbook配置的環境真的時一波三折,終於配好開始使用后又出現了各種問題,在此記錄一下,也希望能幫助更多的同學們

新手一個,探索中,說的不對的勿噴~

 

 

一、adb devices命令始終不能發現模擬器,或者報錯

List of devices attached
adb server version (32) doesn't match this client (36); killing...
* daemon started successfully *

 

 

解決辦法:

我一開始使用了夜神模擬器,但是不知道為啥,每次啟動夜神模擬器都會導致我的電腦崩潰重啟,只好放棄了

然后改成了網易mumu模擬器,終於可以用了,如果有時候發現不了模擬器,重啟電腦和模擬器應該就可以了。

 

 

二、使用device.installPackage("xxx.apk") 命令安裝apk時報錯

  java.lang.NoSuchMethodError: com.android.ddmlib.IDevice.installRemotePackage  (類似這個錯誤,具體錯誤我忘記截圖下來)

  解決辦法:

  我卸載了原來android studio里下載下來的platform-tools和tools,重新下載了一個別的版本的進行替換,下載地址如下:

  http://www.androiddevtools.cn/

  然后重新啟動monkeyrunner,再輸入之前的安裝命令,就可以了~

 

 

三、使用uiautomatorviewer定位元素時,報錯

  使用了真機進行定位,獲取真機屏幕時報錯:

  Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't exist!

 

  解決辦法:重啟手機,再次獲取就可以了

  我用uiautomatorviewer獲取模擬器的屏幕是不可以的,所以我只能獲取真機屏幕定位元素,寫好腳本后在模擬器上跑,心累。。

 

 

四、運行腳本時報錯:Could not connect to the view server

首先通過執行如下命令判斷是否開啟View Server:
adb shell service call window 3
若返回值是:Result: Parcel(00000000 00000001 '........') 說明View Server處於開啟狀態
若返回值是:Result: Parcel(00000000 00000000 '........') 說明View Server處於關閉
若是一台可以打開View Server的手機(Android開發版手機 、模擬器or 按照本帖步驟給系統打補丁的手機),我們可以使用以下命令打開View Server:
adb shell service call window 1 i32 4939
使用以下命令關閉View Server:
adb shell service call window 2 i32 4939

我是用紅米2a測試的,親測可用,然后再跑腳本就沒有報這個錯誤了,但是后續的腳本跑不起來,又回歸了模擬器跑



五、運行腳本時一直卡着,無響應

   雖然monkeyrunner是可以同時操作多個設備的,但是不熟悉的時候還是只開一個吧,我把多余的窗口關掉,再嘗試就可以了,建議只保留當前在進行測試的一個窗口

 

六、報錯  Non-ASCII character in file 

只要在文件開頭加入下面代碼就行了

1 # -*- coding: UTF-8 -*-  

特別注意:上面這條語句一定要加在源代碼的第一行!!!!

 

默認的python文件是采用ascii編碼的,在頭部加入# -*- coding: utf-8 -*-   則指定文件的編碼格式是utf-8,那么就是說文件內你可以用中文或其他的文字了。

 




免責聲明!

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



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