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