1

是否可以单击ViewPager中ListView的第一项?Espresso:单击ViewPager中ListView中的第一项

我已经尝试过得到它的工作是这样的:

onData(anything()).inAdapterView(withId(R.id.myListView)).atPosition(0).perform(click());

但据我所知:Testing ViewPager with Espresso. How perfom action to a button of an Item?你不能使用onData作为ViewPager。 另外,如果我运行测试,我得到一个AmbiguousViewMatcherException多个匹配。

android.support.test.espresso.AmbiguousViewMatcherException: 'with id: my.awesome.app:id/myListView' matches multiple views in the hierarchy. Problem views are marked with '****MATCHES****' below.

如果我像这样运行onView(allOf(withId(R.id.myListView),isDisplayed())).perform(click());测试的第一个项目是从来没有点击。

是否有另一种方法来点击列表中的第一项?

+0

你只是想要选择第一个项目? – cunniemm

+0

那么,我想点击它 – elpatricko

+0

哦,我看到哈哈。 @PatrickSturm – cunniemm

回答

1

试试这个:

onData(anything()) 
    .inAdapterView(allOf(withId(R.id.myListView), isCompletelyDisplayed())) 
    .atPosition(0).perform(click()); 

当你有一个AmbiguousViewMatcherException这可能工作的匹配,如果我没看错,其显示在屏幕上的“myListView”。

+0

它工作,一次运行...然后我得到了另一个错误:'android.support.test.espresso.PerformException:错误执行'视图加载适配器数据''(与id:my.awesome.app:id/myListView并且至少100%的视图区域显示给用户。)'。' – elpatricko

+0

在点击第一个元素之前是否滑动ViewPager?如果是这样,请添加一个SystemClock.sleep(800);在这个指示之前,检查它是否有效。 – jeprubio

+0

不,我不刷卡。 – elpatricko

相关问题