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

相關問題