我有一个动态构建的视图列表,因此它们都具有完全相同的资源 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();
这个想法是隔离两个相对布局并在其中搜索文本,而不是整个 GUI。您可以使用 uiautomatorviewer 查看 GUI 布局。也许您可以使用详细的布局更新问题。
我可以使用它来给出更准确的答案。