使用 espresso 在网页视图中查找多个元素

2024-03-15

我正在测试一个混合应用程序,其中每个视图都有一个网络视图。
在其中一个 Web 视图中,我有一个具有相同属性的元素列表。它们具有相同的 xpath 定位器,如下所示:

//h4[contains(@data-role, 'product-name')]

我想创建这些元素的列表并迭代它们,对它们进行计数,获取它们的属性。

在文档中,我发现了两种类似的方法:

findElement(locator, value)

and

findMultipleElements(locator, value)

尽管我完全不清楚如何使用它。我试图找到这方面的例子,但没有成功。

有人可以帮我解决这个问题吗?


这是我找到的解决方案。

@kaqqao 是对的findMultipleItems来电返回Atom<List<ElementReference>>不能用于onWebView()因为那里你只有withElement()接受任一Atom<ElementReference>要不就ElementReference

不过,您可以做的是执行查找多个项目的操作,并从 Atom 中获取结果。如果您检查其来源,这就是它的内部工作原理doEvalWeb.java 中用于浓缩咖啡的方法。

val elements = with(AtomAction(findMultipleElements(
                Locator.XPATH,
                "YOUR_COMPLEX_XPATH"
        ), null, null)) {
            onView(ViewMatchers.isAssignableFrom(WebView::class.java)).perform(this)
            this.get()
        }

这段代码会给你List<ElementMatcher>.

然后运行它

elements.forEach {          
  onWebView().forceJavascriptEnabled().withElement(it).perform(webClick())
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 espresso 在网页视图中查找多个元素 的相关文章

  • Android Room ORM:支持 SQLite 的自定义构建

    我需要使用 SQLite 的自定义构建 基于 sqlite org 版本https sqlite org android doc trunk www index wiki https sqlite org android doc trunk
  • 使用 ActiveAndroid 库存储 HashMap

    我有一堂课 Table name Control public class Control extends Model Column private String name Column private Map
  • 制作一个包含自定义对象列表的可分割类

    我在使列表对象可解析时遇到错误 我认为读取对象时发生错误 这是我的代码 public class TestSample implements Parcelable int intValue String stirngValue privat
  • 视图无法解析为类型

    这里的视图似乎有什么问题 我该如何解决它 错误 视图无法解析为类型 public void onItemClick AdapterView
  • 在Android中使用RxJava2插入SQLiteDatabase

    我在学习RxJava2在安卓中 谁能解释一下我们如何使用将数据插入 SQLiteDatabaseRxJava2 这是我尝试使用的代码示例 但它将数据插入数据库六次 单击时 getCompletableObservable subscribe
  • Android版本App更新代码

    我读到如果我们想更新Google Play中的应用程序 版本代码应该高于以前的apk文件 我有一个版本代码为 20 且版本名称为 1 0 的应用程序 那么要更新app 应该如何增加版本号呢 应该增加10吗 或者仅仅 1 就足够了 即版本代码
  • 多种语言的多种字体

    我最近在开发应用程序时遇到了一种情况 我必须在文本视图中显示不同的语言 目前我正在展示一些使用字体 字体像这样 Typeface tf Typeface createFromAsset this getAssets DroidHindi t
  • 如何使用数据绑定将点击侦听器设置为 LinearLayout

    我目前正在尝试将点击侦听器设置为LinearLayout查看在 xml使用数据绑定的布局文件 我已经设法让它在其他视图上很好地工作 比如Button or TextView 但由于某种原因 它不能与LinearLayout 这是我尝试的基本
  • 在 /dev/input/eventX 中写入事件需要哪些命令?

    我正在开发一个android需要将触摸事件发送到 dev input eventX 的应用程序 我知道C执行此类操作的代码结构如下 struct input event struct timeval time unsigned short
  • RecyclerView 在聊天屏幕中的 notificationDataSetChanged 上滚动到顶部

    我正在尝试使用 recyclerView 创建消息传递类型的屏幕 该屏幕将从底部开始 并在用户到达聊天顶端时加载更多数据 但我面临着这个奇怪的问题 我的 recyclerView 在调用 notificationDataSetChanged
  • TextView 宽度匹配drawableTop 宽度

    有什么办法可以使TextView width匹配复合可绘制宽度 XML 例如对于 xml 代码
  • 如何在单个查询中搜索 RealmObject 的 RealmList 字段

    假设我有一堂课 public class Company extends RealmObject private String companyId private RealmList
  • Android 无法解析日期异常

    当尝试解析发送到我的 Android 客户端的日期字符串时 我得到一个无法解析的日期 这是例外 java text ParseException 无法解析的日期 2018 09 18T00 00 00Z 位于 偏移量 19 在 java t
  • Android:canvas.drawBitmap() 方法无法正常工作

    我已经发布了两个与此相关的问题 请参考此自定义饼图 1 https stackoverflow com questions 28343600 customize pie chart in quarter shape at the botto
  • Android 为什么这不会抛出错误的线程异常?

    我的印象是视图只能从主线程操作 但是 为什么这不会崩溃 public class MainActivity extends Activity TextView tv Override protected void onCreate Bund
  • 如何使用 isInEditMode() 在编辑器中查看自定义视图的布局

    我必须编辑一个具有自定义视图的软件 当我尝试编辑布局 xml 时 Eclipse 告诉我 在自定义视图中使用 View isInEditMode 可以在显示时跳过代码 在日食中 但我不知道how and where我必须使用isInEdit
  • Android:分配内存失败

    我正在尝试创建一个具有 2047 mb 内存的模拟器 当我运行它时 我收到此错误 2011 02 22 14 24 14 Emulator 2011 02 22 14 24 14 Emulator This application has
  • Android View Canvas onDraw 未执行

    我目前正在开发一个自定义视图 它在画布上绘制一些图块 这些图块是从多个文件加载的 并将在需要时加载 它们将由 AsyncTask 加载 如果它们已经加载 它们只会被绘制在画布上 这工作正常 如果加载了这些图片 AsyncTask 就会触发v
  • 在线性布局内的 ScrollView 内并排对齐 TextView

    我有一个带有滚动视图的线性布局 我想保留它的当前格式 但只需将 textView2a 和 textView3a 并排放置 而不会破坏我当前的布局格式 我已经包含了我最近的尝试 但它们似乎不正确 提前致谢 Java菜鸟 当前有效的 XML
  • Keystore getEntry 在 Android 9 上返回 NULL

    c我已对存储在 Android 密钥库中的登录密码进行了加密和解密 在 Android 9 上 我观察到应用程序在尝试解密密码时崩溃 我无法重现它 但拥有 Pixel 3 的用户是崩溃的设备之一 下面是我如何从密钥库解密密码 private

随机推荐

  • 网格单元格的边框在本机反应中并不统一

    我正在尝试使用 React Native 构建一个简单的计算器 I created a button component with borderWidth 0 5 and used this button component to form
  • 如何构建具有独立推理和训练部分的 TF 图?

    参考文献这个帖子 https stackoverflow com questions 40340807 how can i build a tf graph for both training and inference with tf t
  • 将枚举与字符串写入包裹

    我有这样的 Parcelable 枚举 public enum Option implements Parcelable DATA BASE TRIPS BIG PHOTOS OLD PHOTOS FILTERS IMAGES CATEGO
  • URL 变量中间的问号

    如果我有一个要传递 URL 的变量 并且其中有一个问号 我是否只需要转义该问号 如果没有 我怎样才能确保它像预期的那样通过 问号 URL 编码为 3F 但是您应该对整个事情使用适当的编码器 而不是手动编码字符
  • Google Chrome 地址栏在调整大小时消失

    在 MacOS Yosemite 上运行最新版本的 Google Chrome 版本 41 0 2272 101 64 位 时 当我调整地址栏大小时 地址栏会松开 并且必须重新启动 Google Chrome https www youtu
  • 如何计算图像有无噪声和几何畸变?

    我需要在 iPhone 中制作一个应用程序 需要计算图像中的噪声 几何变形和其他扭曲 这个怎么做 我用 opencv iphone 做了一些图像处理的东西 但我不知道如何计算这些参数 1 如何计算图像中的噪声 2 什么是几何变形以及如何计算
  • 如何在 iPhone 中显示 .tiff 图像?

    我想在我的本机 iphone 应用程序中显示来自服务器的 tiff 图像 是否可以在本机 iPhone 应用程序中显示 tiff 图像 我花了 2 个小时试图解决这个问题 但没有成功 我在网上搜索了近2个小时 没有解决这个问题 谁能帮我解决
  • 使用占位符时 PDO 执行速度较慢

    我正在制作一些返回计数和分组结果的 JSON 端点 对于此端点 我使用 PDO 和命名占位符 当使用命名占位符时 PHP 响应最多需要 6 秒的时间execute阶段 当执行相同的查询并将值直接放入查询中时 响应几乎是即时的 我正在更新仍使
  • 如何将openSSL生成的RSA公钥加载到RSACryptoServiceProvider中?

    我正在编写一个 Net 类 它从我们的中央身份验证服务器读取 cookie 它包含 UserId 一些时间戳和由 openssl sign 使用 2048 位 RSA 密钥和 SHA1 哈希创建的签名 当前的公钥在服务器上以 openssl
  • 调试器如何只查看变量的值而不是内存地址

    最近 我一直在 Visual Studio 中广泛使用结构和类 它们中的大多数都有很多值 这使得它们在调试时很难在监视窗口中跟踪 因为监视窗口和浮动监视窗口 您可以pin 不知道准确的术语 始终显示内存地址 这会模糊值的视图 有没有办法让监
  • Grunt 未定义

    刚开始使用 grunt 当我跑步时grunt我收到这个错误 Loading Gruntfile js tasks ERROR gt gt ReferenceError grunt is not defined 这是我的 Gruntfile
  • 在 UWP 应用程序中,如何重现异常,告知仅在非 UI 线程上允许同步 UI

    我无法弄清楚不同类型的线程在 UWP 应用程序中的行为方式 首先 在 UWP 中 UI 线程似乎不是主线程 而是工作线程之一 当我在事件处理程序中插入断点等时 我在调试器中看到了这一点 我的假设是CoreApplication MainVi
  • 为什么这段代码可以用 eclipse 编译器编译,但不能用 javac (maven) 编译

    诸如此类的问题还有很多 我经历了其中的大部分 但实际上没有 但我无法想出任何答案 我的 GWT GWTP 课程之一遇到了一个奇怪的问题 该类可以使用 Eclipse 编译器正常编译 但使用 javac 编译器 Maven 则编译失败 add
  • JavaScript 警报弹出表单

    我已经搜索了整个网站和谷歌 但找不到它 所以 就在这里 我想要一种在使用警报时显示表单的方法 例如 当用户单击 发布 时 会弹出一个对话框 询问用户一些问题 例如 html 表单 并允许用户单击 提交 重置 或 取消 而无需加载新页面 我已
  • 在 R 中保存工作区图像

    在 R 会话结束时关闭 R Studio 时 系统会通过对话框询问我 将工作区图像保存到 工作目录 吗 这意味着什么 如果我选择保存工作区图像 它保存在哪里 我总是选择不保存工作区图像 保存它有什么缺点吗 我查看了 stackoverflo
  • Android Studio 更新后 AVD 无法启动

    在我安装了最近发布的 921MB 更新后 我的 AVD 不再启动 我不太记得更新的实体 可能是 API SDK 修订版 我在 Debian 上使用 Android Studio 2 3 版本 AI 162 4069837 和 API 25
  • 是否可以在没有重定向服务器的情况下使用 OAuth 2.0?

    我正在尝试创建一个与 SurveyMonkey API 交互的基于 Java 的本地客户端 SurveyMonkey 需要使用 OAuth 2 0 的长期访问令牌 我对此不太熟悉 我已经在谷歌上搜索了几个小时 我认为答案是否定的 但我只是想
  • 如何在 Notepad++ 中使用富文本?

    我喜欢Notepad 但有时我需要将一些单词设置为粗体或草书 更改字体大小等 在 Notepad 中可以吗 我们可以突出显示文本 右键单击文本Style Token gt Using 1st Style通过使用这个我们可以突出显示文本 最多
  • .NET ImageList 实现中的 ImageList 容量错误?

    我在 net 应用程序中为 ListView 使用 ImageList 时遇到一些问题 在我的实现中 这个 ImageList 根据使用情况可以容纳几千个图像 这个问题最初是在我尝试处理大量图像时出现的 当我超过 5K 图像时 我在尝试添加
  • 使用 espresso 在网页视图中查找多个元素

    我正在测试一个混合应用程序 其中每个视图都有一个网络视图 在其中一个 Web 视图中 我有一个具有相同属性的元素列表 它们具有相同的 xpath 定位器 如下所示 h4 contains data role product name 我想创