私はUIを自由にナビゲートできるように、UI要素の親ビューを識別しようとしています。uiautomatorを使用してビューの親を取得するにはどうすればよいですか?
例えば、設定アプリで、私は「ブルートゥース」をテキストとの見解を見つけることができますが:
UiObject btView = new UiObject(new UiSelector().text("Bluetooth"));
は今、私は動けなくなる部分はこの1つである:私は、最大2つのレベルをナビゲートしたいとブルートゥースを有効または無効にするオン/オフボタンの新しい検索を開始します。
注:以下のコードを使用するとボタンが表示されます。
UiObject btButtonView = new UiObject(new UiSelector().className("android.widget.Switch").instance(1));
これは、スイッチボタンを検索し、2番目の出会いを返します。検索をより正確にして、 "Bluetooth"テキストを含む線形レイアウトのボタンを探してください。
UPDATE: これは、設定アプリ(私は必要なBluetoothの部分)のレイアウトです:
LinearLayout
LinearLayout
ImageView
RelativeLayout
TextView (with text = "Bluetooth")
Switch()
この方法も機能しません。 2つ上のレベルのUiObjectはLinearLayoutですが、text属性はありません。だから私はテキスト "Bluetooth"でそれを識別することはできません。質問をアプリケーションの実際のレイアウトに更新しました。 –
それは動作します。 LinearLayoutのテキストでは識別できません。 msgstr "子のUI要素を子階層に持つchildPattern引数に一致する子が、text属性と同じテキストを持つサブ階層内にあるかどうかを調べます。"言い換えれば、テキストBluetoothを持つ子を持つLinearLayoutを探します。 – Anders
はい、動作します。私は初めて何かが間違っているようだ。 –