我正在尝试使用 Espresso 在列表视图中单击文本。我知道他们有这个指南,但我不知道如何通过查找文本来完成这项工作。这是我尝试过的
Espresso.onData(Matchers.allOf(Matchers.is(Matchers.instanceOf(ListView.class)), Matchers.hasToString(Matchers.startsWith("ASDF")))).perform(ViewActions.click());
正如预期的那样,这没有奏效。该错误表示层次结构中没有视图。有谁知道如何选择字符串?("ASDF"
在这种情况下)提前谢谢。
由于@haffax而更新
我收到错误:
com.google.android.apps.common.testing.ui.espresso.AmbiguousViewMatcherException: 'is assignable from class: class android.widget.AdapterView' 匹配层次结构中的多个视图。
第二个错误
使用此代码
onData(hasToString(startsWith("ASDF"))).inAdapterView(withContentDescription("MapList")).perform(click());
我收到这个错误
com.google.android.apps.common.testing.ui.espresso.PerformException:在视图上执行“加载适配器数据”时出错,内容描述为“MapList”。
引起:java.lang.RuntimeException:找不到匹配的数据:asString(以“ASDF”开头的字符串)
解决方案
onData(anything()).inAdapterView(withContentDescription("desc")).atPosition(x).perform(click())