android - 无法在 Espresso 中使用 onWebView 方法在 webview 中找到元素
问题描述
我正在使用以下依赖项来编写我的 espresso 测试:
androidTestImplementation 'com.android.support.test.espresso:espresso-intents:3.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-contrib:3.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-web:3.0.2'
我正在尝试使用以下代码检测 webview 是否已成功加载:
onWebView().withElement(findElement(Locator.XPATH, "//h1[contains(text(),'Login')]"));
这一直有效,直到我将我的应用程序的支持扩展到 OREO (API 27)。升级目标版本后,我将 espresso 依赖项从 2.2 更新到 3.0.2。升级后,onWebview
方法总是返回一个没有元素的 webview,即使我可以看到 webview 正在 Android 设备中加载。
我想测试一下,webview 是否已加载到设备中。
任何帮助表示赞赏!提前致谢
解决方案
这是我这边的一个转储错误.. !!
我正在为将来被这样卡住的人回答这个问题..
我在其中一个视图中添加了一个新的过渡,为此我禁用了硬件加速。请确保您的清单文件中启用了硬件加速。如果在运行测试之前在清单中找到以下行,请删除它。
android:hardwareAccelerated="false"
这种硬件加速也可以在三个不同的级别(应用程序、活动、视图)进行配置。请参考此链接。
推荐阅读
- javascript - 使用 MediaRecorder 录制后,音频将不再在浏览器上播放
- android - startActivity(Intent) 和 startActivity(Intent.createChooser()) 有什么区别
- python - 如何从文件中读取字符串并将其设置为 Python Tkinter 中的标签文本?
- aws-marketplace - 如何在 AWS 市场中自动订阅?
- postgresql - ORDER BY 和 SELECT 相同的计算
- bash - 仅当它是 JSON 时才通过 jq 管道输出
- angular - 如何使用spring boot为rest api创建用户界面
- reactjs - 页面刷新时的 Reactjs 使用当前位置而不是默认页面
- javascript - 使用jQuery停止点击功能
- c# - MySQL 使用 OR 运算符选择