Unexpected error while obtaining UI hierarchy:使用uiautomatorviewer定位元素報錯

1.問題描述

在使用Uiautomatorviewer 進行元素定位時,點擊 快照 按鈕出現以下錯誤:

2.發生原因

  Unexpected error while obtaining UI hierarchy(獲取UI層次結構時發生意外錯誤)。

  發生這個錯誤一般是由這兩種情況導致的:

  1.jdk版本問題 (1.9jdk是不兼容uiautomatorviewer的,1.8的支持,再向下是否兼容本人不太清楚,可自行嘗試)

   2.android版本問題

       我這裏發生這個報錯就是因爲這個原因:

       我使用的是android 9.0的設備,而uiautomatorviewer.bat不支持對9.0系統直接截屏(好像對8.0以後的android系統都不支持直接截屏)

 3.解決方案

      雖然不能直接進行截屏,但是我們可以間接來截屏:

      即:用Uiautomatorviewer去讀取已經準備好的截圖文件,從而進行元素定位

      具體辦法如下:

      1.操作你的待測設備到你需要截圖的界面

       2.點擊Uiautomatorviewer的圖標,可以看到Open UI dump Files需要兩個文件:

              ScreenshotUI  XML  Dump,開始準備需要的文件

       確保你的pc已經安裝adb工具,然後打開命令行工具,在Dos窗口中輸入以下指令:

       獲取UI XML Dump的指令

            adb shell uiautomator dump /sdcard/sc.uix(將uix文件轉儲到手機上,位置自己指定)

            adb pull /sdcard/sc.uix  e:/

       獲取Screenshot的指令

           adb shell screencap  -p /sdcard/sc.png((將獲取的截圖文件轉儲到手機上,位置自己指定))

           adb pull /sdcard/sc.png  e:/

      具體看圖:

     3.加載截圖文件

    4.點擊ok後,則可以正常加載文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章