2017-05-01 11 views
1

私は、アクティビティのレイアウトビューを取得し、必要な項目の境界を取得するために解析しています。 私は"adb exec-out uiautomator dump /dev/tty"を使用してレイアウトビューを取得するためにuiautomatorビューを使用していますが、私は、私は私がIs there a way to get current activity's layout and views via adb?で答えを経なくてきたXMLファイル内にuiautomatorダンプを取得し、それを解析して境界を取得します

var xml = XDocument.Load(output); 

へのLINQを使用して解析するためにそれを使用できるように、それがファイルに取得したいです多くの助けを得ています。

+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のようなものを見るの境界を与える正確いると、多くの、より多くのものを行うことができます。 /storage/sdcard/uiAuto.xmlが

これは、ファイルにダンプを置くダンプuiautomator adbのシェル 'uiAuto.xml':

+0

を解析するの現時点での方法がないと思いますadb.exeを使用するようにバインドされています。 また、クリックしたいアイテム/ボタンに特定のIDがない場合はどうなりますか? 出力をxmlで取得して、それを私たちの使用に従って解析できると良いでしょう。 adb exec-out uiautomator dump - xml形式で出力しますが、問題は、XDocument.Load(出力)でロードできる文字列/ファイルに保存できないことだけです。 – luckycse

+0

IDを持たない(またはIDが繰り返される)場合は、AndroidViewClientは常にすべてのビューに*一意のID *を割り当てます。あなたが '束縛 'の意味を理解できないのですが、AVCは' adb'に接続する 'adbclient'を使います。 –

+0

環境に制約があるため、adb.exe以外は使用できません。 AndroidViewClientをインストールできないあなたがそれを自分自身でやりたいのであれば、AVCのソースを見てみましょう。(例えば、(64,64)、(221,123)) – luckycse

0

あなたはこれを行うことができます。これをローカルファイルにプルして読み込むことができます。

それが使用引くには: ADBプル/storage/sdcard/uiAuto.xml [anylocalfile]

関連する問題