2017-05-01 65 views
1

我正在獲取活動的佈局視圖,然後解析以獲取所需項目的邊界。 我使用uiautomator視圖中使用"adb exec-out uiautomator dump /dev/tty"把佈局的看法,但我希望它進入一個文件,這樣就可以用它來使用LINQ to XML解析獲取文件中的uiautomator轉儲,然後解析它以獲取邊界

var xml = XDocument.Load(output); 

我已經經歷了答案在Is there a way to get current activity's layout and views via adb?但沒有走得到很多幫助。請建議一些指針。

+0

我覺得沒有辦法在當下,而不是解析 –

回答

0

AndroidViewClient/culebradump工具,讓你做的正是和許多更多的東西

$ dump -b 

爲您提供了查看範圍,像

android.widget.FrameLayout ((0, 0), (1080, 2048)) 
    android.widget.TextView com.example.app:id/text Something ((64, 64), (221, 123)) 
    ... 

更多細節here

+0

我不認爲我可以使用任何其他庫並綁定使用adb.exe。 此外,如果我們沒有任何特定的ID,我們想要點擊的項目/按鈕。 如果我們可以在xml中獲得輸出,然後根據我們的用法對其進行解析,那將會很好。 adb exec -out uiautomator dump - 它以xml方式提供輸出,但唯一的問題是我無法將其保存到可在XDocument.Load(輸出)中加載的字符串/文件。 – luckycse

+0

對於沒有ID(或ID重複)的情況,AndroidViewClient始終爲所有視圖分配一個*唯一ID *。不明白'bound'是什麼意思,但是AVC使用'adbclient'連接到'adb'。 –

+0

由於某些環境的限制,我不能使用adb.exe以外的其他東西。我的意思是我無法安裝AndroidViewClient。通過邊界,我的意思是這個值在一個項目/按鈕的存在 - 例如:((64,64),(221,123)) – luckycse

0

,你可以這樣做: 亞行外殼uiautomator傾倒/storage/sdcard/uiAuto.xml

這使轉儲文件中的「uiAuto.xml」。你現在可以把它拉到本地文件然後讀取它。

把它用: ADB拉/storage/sdcard/uiAuto.xml [anylocalfile]