使用 Espresso 单击 RecyclerView 项目内的视图

2024-01-08

如何使用 Espresso 单击某个视图中的特定视图回收视图物品?我知道我可以使用以下命令单击位置 0 处的项目:

onView(withId(R.id.recyclerView)) .perform(RecyclerViewActions.actionOnItemAtPosition(0, click()));

但我需要单击该项目内的特定视图,而不是项目本身。

- 编辑 -

更准确地说:我有一个回收视图 (R.id.recycler_view) 哪些项目是CardView (R.id.card_view)。每个里面CardView我有四个按钮(除其他外),我想单击一个特定按钮(R.id.bt_deliver).

我想使用 Espresso 2.0 的新功能,但我不确定是否可行。

如果不可能,我想使用这样的东西(使用托马斯·凯勒代码):

onRecyclerItemView(R.id.card_view, ???, withId(R.id.bt_deliver)).perform(click());

但我不知道问号上该打什么。


您可以通过自定义视图操作来完成此操作。

public class MyViewAction {

    public static ViewAction clickChildViewWithId(final int id) {
        return new ViewAction() {
            @Override
            public Matcher<View> getConstraints() {
                return null;
            }

            @Override
            public String getDescription() {
                return "Click on a child view with specified id.";
            }

            @Override
            public void perform(UiController uiController, View view) {
                View v = view.findViewById(id);
                v.performClick();
            }
        };
    }

}

然后你可以点击它

onView(withId(R.id.rv_conference_list)).perform(
            RecyclerViewActions.actionOnItemAtPosition(0, MyViewAction.clickChildViewWithId(R.id. bt_deliver)));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Espresso 单击 RecyclerView 项目内的视图 的相关文章

随机推荐

  • 更改 tkinter 中的输入框背景颜色

    所以我一直在研究这个程序 但我发现很难找出问题所在 我对 tkinter 还很陌生 所以这可能很小 我试图让程序在按下复选按钮时更改输入框的背景颜色 或者更好的是 如果我可以动态地改变它 那就更好了 这是我目前的代码 TodayReadin
  • 在Java中无损JPEG旋转(90/180/270度)?

    是否有一个 Java 库可以以 90 度的增量旋转 JPEG 文件 而不会导致图像质量下降 我找到了这个 http mediachest sourceforge net mediautil http mediachest sourcefor
  • 使用 Azure 管道在特定的自托管服务器上运行

    在 Azure git 中 我正在运行一些自托管代理 它们位于名为 默认 的池中 在 Azure 管道 yml 文件 中 我可以告诉作业它必须在特定代理中运行 如下所示 pool name Default demands Agent Nam
  • 假装电报机器人正在打字?

    如何让机器人假装正在输入消息 当机器人假装打字时 聊天中会出现以下文本 我用的是蟒蛇aiogram https github com aiogram aiogram框架 但对原生 Telegram API 的建议也会有所帮助 我认真建议使用
  • MySQL CSV 导入 - 如果时间戳有毫秒,则日期输入为 0000-00-00 00:00:00?

    我目前有大量 CSV 需要导入到 MySQL 数据库中 这些文件包含每条记录的时间戳 其格式如下 例如 2011 10 13 09 36 02 297000000 我知道 MySQL 错误 8523 它表明不支持在日期时间字段中存储毫秒 尽
  • 如何强制 GCC 假定浮点表达式为非负?

    在某些情况下 您知道某个浮点表达式始终为非负数 例如 当计算向量的长度时 sqrt a 0 a 0 a N 1 a N 1 NB I am意识到std hypot 这与问题无关 并且平方根下的表达式显然是非负的 然而 海湾合作委员会outp
  • NHibernate WinForms 应用程序使用哪个缓存

    我有一个带有数据库后端 oracle 的 C WinForms 应用程序 并使用 NHibernate 进行 O R 映射 我想尽可能减少与数据库的通信 因为这里的网络非常慢 所以我阅读了有关二级缓存的内容 我发现这个很好的介绍 http
  • ELB 和 ECS 集群前面的 Amazon API Gateway

    我尝试将 Amazon API Gateway 放在应用程序负载均衡器前面 该负载均衡器可以平衡到我的 ECS 集群的流量 我的所有微服务都部署在该集群上 使用 API 网关的动机是通过 lambda 函数使用自定义授权方 系统图 用亚马逊
  • Asp.Net Core 1.1 在密钥环中找不到密钥

    VS 2017 中的默认项目 https i stack imgur com Y12YS jpg我在 vs 2017 社区中创建了一个新的 Asp net Core Web 应用程序并将其发布到 FTP 托管上 但是当我提交表单 登录或用户
  • 幂律与其他分布的比较

    我正在使用 Jeff Alstott 的 Python powerlaw 包来尝试使我的数据符合幂律 Jeff 的软件包基于 Clauset 等人讨论幂律的论文 首先 我的数据的一些详细信息 它是离散的 字数数据 它严重向左倾斜 高偏度 I
  • 如何在不阅读的情况下获取文件中的行数[重复]

    这个问题在这里已经有答案了 可能的重复 如何快速统计行数 https stackoverflow com questions 6101367 how to count lines fast 我有一些文件逐行包含数据 我想获取文件中的行数以向
  • 通过比较 2 个列表/行的相似度进行图像旋转匹配 OpenCV Python

    我拿一个模板 并从中抽取 8 个点 现在为 36 个 每个小点都是一个掩模 我从那个小点区域中取平均值 然后将它们添加到列表中 它最终看起来像这样 203 176 160 174 185 185 152 136 131 131 131 13
  • 在 Groovy 中计算赋值表达式

    我有这样的表达 def expr anything something 就我而言 上面的字符串来自网络服务 但它可能来自任何地方 我想对此进行评估 以便最终得到具有 某物 值的变量 anything 这样 assert anything s
  • 为什么克隆的存储库比获取的存储库大 10 倍?

    我们有一个远程仓库 其大小已经爆炸 1 4G 到 14G 我们正在尝试找出此存储库大小增加的原因并解决问题 在这个过程中我们注意到 git clone 和 git fetch 之间的显着差异 如果我们克隆仓库 克隆的仓库也是 14G git
  • 发布 Google Apps 脚本库

    我对如何发布新库有点困惑 我为 Google Apps 脚本创建了一个我认为非常酷且有用的库 google api client https docs google com macros library versions d M5CBUAH
  • 在缩放模式 Picturebox 中平移矩形位置会导致负 Y 坐标

    我正在使用以下类参考 在缩放模式 Picturebox 中平移矩形位置 https stackoverflow com questions 53800328 translate rectangle position in zoom mode
  • 如何在 Angular 2 中正确从 http.get 中提取 JSON 数据?

    我似乎无法使用 json 文件中的信息为视图创建一个变量 但我已经很接近了 我可以回显中的信息 subscribe chain 但它不会将其设置为变量 它们只是未定义 我做错了什么 我只想将 json 文件加载到组件视图中的变量中 在 An
  • Maven 组装子模块多模块

    您好 我需要从主目录中的多模块项目中组装 jar 让我们有一个这样的结构 MASTER pom A3 pom A1 jar A2 jar B3 pom B1 jar B2 jar 我想要实现的是将MASTER中的所有jar包模块进行组装 j
  • 使用“new”实例化时到底发生了什么?

    让我们考虑以下代码 class a public var1 function disp echo this gt var1 obj1 new a echo br After instantiation into obj1 br xdebug
  • 使用 Espresso 单击 RecyclerView 项目内的视图

    如何使用 Espresso 单击某个视图中的特定视图回收视图物品 我知道我可以使用以下命令单击位置 0 处的项目 onView withId R id recyclerView perform RecyclerViewActions act