当前位置:  开发笔记 > Android > 正文

Espresso - 检查ListView中是否存在TextView

如何解决《Espresso-检查ListView中是否存在TextView》经验,为你挑选了1个好方法。

我想在列表中查看Save€XX的显示.保存€XX是一个TextView,可以是VISIBLEINVISIBLE.我使用JUnit 4和Espresso 2.2.1.

我试着像这样检查:

onView(withText(startsWith("Save"))).check(matches(isDisplayed()));

但总是得到一个错误:

android.support.test.espresso.AmbiguousViewMatcherException: 'with text: a string starting with "Save"' matches multiple views in the hierarchy.

如果TextView存在于带有Espresso的ListView中,有没有办法?

UPDATE

我也试过用onData:

onData(hasToString(startsWith("Save")))
                .inAdapterView(withId(R.id.suggestion_list_view)).atPosition(0)
                .check(matches(isDisplayed()));

但它似乎onData适用于数据层,但不适用于视图层.因此,我收到错误:

java.lang.RuntimeException: No data found matching: with toString() a string starting with "Save" contained values: <[Data: ...]>

在此输入图像描述



1> Val..:

经过几次尝试,我找到了方法.

在这种情况下,我们应该使用组合方法并使用数据和视图层.我们访问ListViewID,选择第一项.然后检查它是否为"保存"文本.

onData(anything())
                .inAdapterView(withId(R.id.list_view))
                .atPosition(0)
                .onChildView(withId(R.id.suggestion_saving))
                .check(matches(withText(startsWith("Save"))));

奇迹般有效.请享用!

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有