我正在尝试编写一个测试,该测试按文本单击Spinner项。

我的测试包含以下几行:

onView(withId(R.id.spn_trans_type))
    .perform(click());
onData(anything())
    .inAdapterView(withId(R.id.spn_trans_type))
    .onChildView(allOf(withId(textViewIdToTest), withText(expectedText)))
    .perform(click());

但我有一个异常(exception):NoMatchingViewException: No views in hierarchy found matching: with id: com.rirdev.aalf.demo:id/spn_trans_type
如何找到微调器适配器 View ?换句话说,我应该在inAdapterView()方法中添加什么?

最佳答案

我已经找到了这个答案:



因此,与其使用有点复杂:

onData(anything())
    .inAdapterView(withId(R.id.spn_trans_type))
    .onChildView(allOf(withId(textViewIdToTest), withText(expectedText)))
    .perform(click());

也许你应该使用

onData(allOf(is(instanceOf(String.class)), is(selectionText)))
    .perform(click());
onView(withId(spinnerId))
    .check(matches(withSpinnerText(containsString(selectionText))));

其中selectionText是您期望的字符串值,而spinnerIdSpinner View 的ID。

关于安卓。 espresso 。如何单击带有文本的微调项?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34619624/

10-09 04:05