使用UIAutomator获取android.widget.ListView的所有子项

时间:2016-10-18 16:44:35

标签: android listview android-testing uiautomator android-uiautomator

是否可以使用UIAutomator获取ListView的所有子项?我面临的问题是listView.getChildCount();仅返回视图中的子项数。我试图滚动并添加计数,但它无法正常工作。

UiScrollable listView = new UiScrollable(new UiSelector().scrollable(
        true).className("android.widget.ListView"));
listView.setAsVerticalList();

listView.flingToBeginning(100);

int count = listView.getChildCount();
listView.scrollForward();
count += listView.getChildCount();
Log.d("STATE", "COUNT: " + count);

在需要滚动时,有没有可靠的方法来获取ListView的所有子项?

1 个答案:

答案 0 :(得分:3)

不幸的是,没有,Uiautomator只能看到当前屏幕上的对象...如果你想滚动到列表中的特定对象,你可以这样做:

  

listView.scrollIntoView(uiobjectYourLookingFor);

或者这个:

UiObject uiObjectYouWant = listView.getChild(newUiSelector().resourceId(com.yourappname:id/yourId");

这两个都会滚动到您指定的对象