0

我有一份清單,如果回收商在屏幕上的不同位置查看。 像下面enter image description here特濃咖啡:點擊位置不明的Recycler視圖

  • 我想基於可變文本「招聘#」它裏面具體的回收視圖點擊。
  • 但不能執行相同的操作,因爲我不知道我應該點擊的確切位置。
  • 回收站視圖的位置不斷變化。嘗試下面的代碼,但它點擊靜態位置'6'

    recyclerView = onView( allOf(withId(R.id.recycler_view),isDisplayed())); recyclerView.perform(actionOnItemAtPosition(6,click()));

我想知道動態的正確位置。

回答

2

單擊儀器測試中的位置,在我看來,這是一個不好的做法,因爲它會導致非確定性測試。這適用於RecyclerViewAdapterView

因此,爲了不依賴某個職位,您需要一個itemView匹配器來執行您的回收查看器操作。

ItemView匹配器是匹配ViewHolder的itemview的視圖匹配器。你的情況,你需要匹配一個LinearLayout持有高亮RelativeLayout,它可以表示爲hasDescendant(withText("Job 109"))

在你的情況下,最終的解決方案應該是這樣的:

onView(allOf(withId(R.id.recycler_view),isDisplayed())).perform(Recyclerview actions.actionOnItem(hasDescendant(withText("Job 109")), click()));

+0

遇到錯誤:錯誤的第一個參數類型。發現:'org.hamcrest.Matcher ',必需:'int' – RosAng

+0

正確,我搞砸了複製和粘貼部分 - 它應該是RecyclerViewAction.actionOnItem –

+0

準確地說:onView(allOf (withId(R.id.recycler_view),isDisplayed()))。perform(RecyclerViewActions.actionOnItem(hasDescendant(withText(「Job#109」)),click())); – RosAng