1. 程式人生 > >開啟真機的View Server引入HierarchyViewer/By寫monkeyrunner自動化測試指令碼

開啟真機的View Server引入HierarchyViewer/By寫monkeyrunner自動化測試指令碼

Android SDK自帶一個工具叫做monitor,它裡面的Hierarchy Viewer可以看到app的UI結構、控制元件屬性等等。monkeyrunner有一個類By,通過By可以在程式碼中根據控制元件ID定位到該控制元件從而寫更有針對性程式碼(比如點選按鈕、比如獲取文字框中的字串)。

可是出於安全考慮,Hierarchy Viewer只能連線Android開發版手機或是模擬器。只有當裝置或模擬器上啟動一個叫做View Server的服務,Hierarchy Viewer才能與其進行socket通訊,才能看到app的“View”。而絕大多數商業手機是無法開啟View Server的,所以Hierarchy Viewer也就無法連線到普通的商業手機。而By又依賴於Hierarchy Viewer,所以如果想在普通的商業手機上通過控制元件ID去做一些操作,連線模擬器執行通過的指令碼連線真機執行是會拋錯的。

不過小米手機是個例外,通過執行如下命令可以輕易開啟它的View Server: 
adb shell service call window 1 i32 4939 
然後通過執行如下命令判斷是否開啟View Server: 
adb shell service call window 3 
若返回值是:Result: Parcel(00000000 00000001 '........') 說明View Server處於開啟狀態 
若返回值是:Result: Parcel(00000000 00000000 '........') 說明View Server處於關閉狀態 
如果想關閉View Server執行如下命令: 
adb shell service call window 2 i32 4939

除了小米手機之外,別的手機能不能開啟View Server?經過一番調查和實踐,其實只要是root,並且裝有busybox的手機,通過修改手機/system/framework中的某個檔案,就能夠開啟View Server。

相關推薦

開啟View Server引入HierarchyViewer/Bymonkeyrunner自動化測試指令碼

Android SDK自帶一個工具叫做monitor,它裡面的Hierarchy Viewer可以看到app的UI結構、控制元件屬性等等。monkeyrunner有一個類By,通過By可以在程式碼中根據控制元件ID定位到該控制元件從而寫更有針對性程式碼(比如點選按鈕、比如

開啟View Server引入HierarchyViewer

其實相關文章網上也有不少了,不過在真機上開啟View Server的中文文章好像只有一篇,前段時間按照這篇文章的內容,並結合英文源文去hack我的Nexus S(4.1.2)也走了一點彎路。現在總結一下我的步驟(其實有相當一部分拷貝了這篇,衷心感謝原文作者)。並寫點在開啟View Server之後mon

小程式canvas使用網路圖片不顯示解決方案----可直接使用案例測試

圖片都是線上的,可以直接放到onLoad裡邊自動檢測 1.注意點:  在繪製網路圖片時必需先將其儲存到本地然後在繪製。當我們在載入一個帶有圖片的頁面時,圖片都會被暫存到本地,由此我們可以通過wx.ge

Appium+Python+Pycharm如何建立並執行自動化測試指令碼執行】

二、將測試機連線電腦,手機上會有一些提示,總之都允許就可以了,開始USB除錯模式,之後開啟cmd,輸入adb devices,檢視手機是否成功連線,如下圖所示: 上圖中可以看到,有一臺裝置已經成功連線了電腦; 三、開啟pycharm,新建一個python檔案,

ionic調試Android報錯 - could not read ok from ADB Server * failed to start daemon * error: cannot connect to daemon

找到 管理器 and nic sid ask err span adb 在使用真機調試Android程序時,報錯如下: could not read ok from ADB Server * failed to start daemon error: cannot con

解決小程式中 cover-view無法蓋住canvas的問題,僅安卓出現

原因在於系統頁面渲染的差異,在安卓中頁面dom的渲染並不是完成按照上下順序來的, 有可能出現寫在後面的dom被先渲染出來,因此會隨機出現能蓋住、不能蓋住的情況,很詭異是不是? 開發者工具中並非真機,只是模擬顯示,調整時顯示正常不代表真機中正常   解決方式很簡單: 將cover-view的

微信小程式scroll-view橫向滾動測試失敗

問題描述: 微信小程式的scroll-view設定橫向滾動,在開發工具上顯示效果是正常的,但是在真機上測試橫向滑動的時候,整個手機螢幕跟著左移 解決: css樣式的問題:將scroll-view的樣式

微信小程式 調試出現開啟除錯有資料,關閉除錯沒有資料

       本來是小程式上架成功的好日子,結果使用小程式一會後就懵逼了,我擦,說好的資料呢,怎麼沒有了,不是開發的時候除錯都好好的嗎?為什麼現在有的介面能夠展示資料調取成功;而有的介面卻不能修改資料,調取失敗呢?       於是就各種百度各種查,在排除https證書的情

關於eclipse使用中,測試無法開啟File Explorer中data目錄無法開啟的問題

網上找了好久,經過不斷的摸索,我把我的方法介紹出來,親測有效. 1:首先你的手機需要獲取root許可權,這個網上能收到; 2:找到你安裝SDK的目錄,進入platform-tools ,比如我的是:D:\JAVA\adt-bundle-windows-x86_64-2013

HierarchyViewer報Unable to get view server protocol的解決方法

檢驗一臺裝置(手機或模擬器)是否開啟了View Server的辦法為: 首先進入adb,輸入adb devices確保裝置正常連線。 如果連線不正確應該重啟下adb service 確保裝置連線正常後,輸入 adb shell service call windo

微信小程式 調試出現開啟除錯有資料,關閉除錯沒有資料

最近在開發當中遇到了一個問題,上傳體驗版之後用手機開啟沒有資料,開啟除錯之後才會有資料。 出現這種問題的主要原因就是後臺的域名沒有配置,在微信公眾平臺設定-->開發設定下面有一個伺服器域名, 把這個配置好了之後就可以了。 但是要注意一個問題,配置好域名之後還是

【Android效能優化】HierarchyViewer無法連線除錯

之前用HierarchyViewer檢視應用的UI資訊,感覺很給力,但是今天刷了使用者版的韌體後,用hierarchyViewer就不可以,出現下面的錯誤: hierarchyviewer unable to debug device To preserve security, Hierarchy Vi

ios調試錯誤解決:Installation of apps is prohibited by a policy on the device

lease release 原因 ali width 應用程序 copyright ice ng- 版權聲明:本文為博主

關於AndroidStudio在安裝的apk閃退(無法開啟)的解決方案

問題描述: 重新安裝AndroidStudio之後 1、發現在真機上安裝apk時顯示的是應用包名。 2、在真機上安裝的apk無法開啟,一直閃退。 如圖:   解決方案: 關閉AndroidStudio的Instant Run即可。 位置:File -> Settings -> Bui

Xcode 調試報錯:This application's application-identifier entitleme

報錯 調試 win cati app itl ati 刪除 allow This application‘s application-identifier entitlement does not match that of the installed applicatio

Xcode 5、Xcode 6 免證書調試

-h mac os x 拍照 6.0 2.3 product 適合 sdn lan 我們都知道,在iOS開發中,假設要進行真機調試的話是須要蘋果開發人員賬號的。否則Xcode就不可以進行真機調試。僅僅可以在模擬器上執行;這就帶來了非常多問題,比方iCloud

華為部分調試無法顯示log問題解決

方式 輸入 project class log 重新 pro logcat clip 真機測試時,部分華為手機無法獲取所有的log信息。或者說無法獲取Error下面級別的log信息。比方P7 這是由於部分華為機出廠默認log設置為關閉狀態。因此僅僅能獲取Error以上級

Xcode5.1.1+ios 7.1.2 免證書調試

pan using 版本號 ons ado 下載 退出 all 替換 Xcode假設不破解。無法真機調試, 也無法編譯真機Release文件。僅僅有付費開通Apple開發人員賬號,才幹申請真機調試。而Xcode進行破解後,結合越獄的iPhone或iPad, 就可以免官

關於移動端web開發的測試

install 相對 同步 css 響應 .html http bsp 關於 五月已經過去一大半了,心情不太好,因為太困沒狀態,所以剛剛去跑了好幾圈,心情終於沒那麽郁悶了,來吧,今天要記錄的是在做移動端網頁時如何真機測試。 網上方法有很多,我就掌握一個就夠了<攤手&g

[原創]Nexus5 源碼下載、編譯、燒錄過程記錄

慢慢 prop sha shell 腳本 .cn 等待 strong download dos asop使用清華鏡像源https://mirror.tuna.tsinghua.edu.cn/help/AOSP/ 一開始使用每月初始化包的方式因為無法搞定版本的問題,沒能通過編