当前位置: 首页 > 知识库问答 >
问题:

Android如何使用Espresso检查图像视图的内容

卢开济
2023-03-14

我正在使用Glide从URL将图像加载到图像视图中。如何在此图像视图上执行比较操作以检查是否确实使用Espresso加载了正确的URL?我在回收器视图中有许多这样的图像,并且正在滚动到它的每个项目,如下所示:

for(int i=0;i<length;i++){

            onView(withId(R.id.people_recycler_view)).perform(RecyclerViewActions.scrollToPosition(i));

        }

但是在这个循环中,我如何检查图像视图内容?

谢谢

共有1个答案

陶瀚玥
2023-03-14

一种简单(但不完全完整)的方法是在应用程序源代码中设置图像的任何位置添加适当的内容描述,然后使用onView(with ContentDescription(“Cute Picture Of Cat”);

如果这样做不起作用,请在测试项目中添加预期的图像,并使用图像比较库将其与屏幕上元素边界内看到的任何图像进行比较。

创建和使用一个自定义匹配器,如下所示。你还必须编写自己的图像比较方法。

onView(withId(R.id.myElementThatHasImage)).
    CustomMatcher.compareImages(test.R.id.myExpectedImageID));

public static Matcher<Object> compareImages(Matcher<View> expectedImageView) {
    return new TypeSafeMatcher<View>() {

        @Override
        public void describeTo(Description description) {
            description.appendText("comparingImages");
        }

        @Override
        protected boolean matchesSafely(View actualImageView) {
            return MyCompareLibrary.compare(expectedImageView,(ImageView)actualImageView.getDrawable());
        }
    };
}
 类似资料:
  • 为了根据文件内容(而不是扩展名)检测真正的文件类型,我使用apache Tika。 但是这段代码看起来很难看。 你能给出更好的解决方案吗?

  • 我知道docker已经弃用了docker images命令中的tree标志。但我找不到任何方便的命令来获得相同的输出,比如docker图像——tree。我找到了dockviz。但这似乎是另一个需要运行的容器。是否有任何内置cli命令可以在不使用dockviz的情况下查看图像的树视图

  • 问题内容: 在我的Android项目中,我有imageButton,单击它之后,它必须使用imageView打开新的Activity,在我的新Activity中,我必须只能看到ImageButton的大字体图像,图像大小为17mb,并且内存不足错误。但是我的代码适用于较小尺寸的图像。有人可以帮助调整图像大小或更改某些位图选项或以其他方式提出建议吗?我是android的新手,对不起,英语不好:) 这

  • 我做了一个docker拉,可以列出下载的图像。我想看看这张图片的内容。在网上搜索,但没有直接的答案。

  • 问题内容: 我本质上有一个采用构造函数参数的自定义。我找不到真正谈论如何实现它的地方。 如您所见,它需要一个,但是当我在测试类中注册时,我不确定如何获取视图。 我已经尝试过,并且尝试过获取当前正在运行的活动,然后调用它,但是没有运气。 有人知道在这种情况下该怎么做吗? 问题答案: 弄清楚了。要使视图传递到空闲资源中,您要做的就是获取ActivityTestRule的成员变量 例如: 然后打电话 因

  • 问题内容: 我有一个ImageView包装此图像: 在它的正下方,是一个TextView。不幸的是,根据设备的屏幕尺寸,它要么将其向下推到视图中,要么从视图中移出。 http://i.imgur.com/CuVFK5P.png http://i.imgur.com/6wzMebV.jpg 我可以“破解”它,但宁愿不… 问题答案: 将以下字段添加到ImageView: