私は動的に構築されたビューのリストを持っているので、それらはすべてまったく同じリソース ID を持ち、説明はありません。それらの違いを区別できる唯一の方法は、同じ親にあるテキストです。私は唯一の方法は次のようにすることだと考えています:
Child >> parent >> child
MILES
上記のように、子またはを取得できますCALORIES
。多数からテキストを取得する必要があります。
私は動的に構築されたビューのリストを持っているので、それらはすべてまったく同じリソース ID を持ち、説明はありません。それらの違いを区別できる唯一の方法は、同じ親にあるテキストです。私は唯一の方法は次のようにすることだと考えています:
Child >> parent >> child
MILES
上記のように、子またはを取得できますCALORIES
。多数からテキストを取得する必要があります。
多数のビューからテキストを取得できます。レイアウトが次のようになっているとします。
1. RelativeLayout
0. Text View -> MILES
1. Text View -> 0.50
2. RelativeLayout
0. Text View -> CALORIES
1. Text View -> 100
UiCollection resultsPage = new UiCollection(
new UiSelector().className(android.widget.ListView.class.getName()));
UiObject resultLayout = resultsPage
.getChildByText(new UiSelector()
.className(android.widget.RelativeLayout.class
.getName()), text); //where text can be MILES or CALORIES
UiObject score = resultLayout.getChild(new UiSelector()
.resourceId(the resource id for the large text));
return (String) score.getText();
アイデアは、2 つの相対レイアウトを分離し、GUI 全体ではなく、それらの中のテキストを検索することです。uiautomatorviewer を使用して、GUI レイアウトを確認できます。詳細なレイアウトで質問を更新できるかもしれません。
より正確な答えを出すためにそれを使用できます。