2016-02-14 23 views
1

如何遍历所有匹配onView()的视图并单击每个视图?特别是,我有一个ListView其中每行有一个CheckBox。我想写一个测试,点击每个CheckBox依次。通过匹配的视图进行迭代

+0

我不是Espresso专家,但是onView的javadoc表明它只处理单个视图。 –

+0

@DougStevenson是的,看起来就是这样。所以我需要找到其他方法来获取视图列表。如果它不存在,我可能会弄清楚'onView()'是如何工作的,并为我的目的进行修改。 –

+0

如果你可以获得一个真正的ListView对象的引用,可以迭代它来查找当前可见的子视图。但我实际上是在Espresso之前,在此刻教我自己的uiautomator,否则我会尽快找到答案! –

回答

0

由于我有一个ListView,我需要使用onData()而不是onView()。我也知道到底有多少行是在ListView,这样我就可以使用for循环和DataInteraction.atPosition()

for (int i = 0; i < rowCount; i++) { 
    onData(instanceOf(BaseballCard.class)) 
      .atPosition(i) 
      .perform(click()); 
} 

我可以想像其他情况,我有几个类似的看法TableLayout或超过ListView以外的东西。如果能够遍历onView()匹配的视图,肯定会很好,但是我还没有找到一种方法来完成此操作。