UiAutomator 在屏幕上找不到 UiObject

Posted

技术标签:

【中文标题】UiAutomator 在屏幕上找不到 UiObject【英文标题】:UiAutomator cannot find UiObject that on a screen 【发布时间】:2020-07-06 11:32:21 【问题描述】:

我尝试使用 UiAutomator 单击按钮,但收到错误 "androidx.test.uiautomator.UiObjectNotFoundException"

我尝试通过两种方式定位对象。

    UiObject cartButton = uiDevice.findObject(new Selector().resourceId("R.id.group_cart_add_button")); UiObject2 cartButton = uiDevice.findObject(By.res(InstrumentationRegistry.getInstrumentation().getTargetContext().getPackageName(), "R.id.group_cart_add_button"));

然后我使用cartButton.click(),但两次都收到错误。

在层次结构中存在此对象

当我尝试在评估工具中找到它时,我可以做到:

但是如果我尝试点击,我会收到错误消息:

为什么?

【问题讨论】:

嗨,我也有同样的问题。有什么资料吗?这有什么更新吗? 【参考方案1】:

您可以执行以下操作:

String packageName = "your-app-package-name"
String fullCartButtonResourceId = packageName + ":id/group_cart_add_button";
UiObject2 cartButton = mDevice.findObject(By.res(uk));

UiObject cartButton = findObject(new UiObject(new UiSelector().resourceId(fullCartButtonResourceId));

【讨论】:

以上是关于UiAutomator 在屏幕上找不到 UiObject的主要内容,如果未能解决你的问题,请参考以下文章

在 setContentView 上找不到资源异常

在Apple Watch上找不到“i”图标的解决方法

在 Android 上找不到 SQLite db 文件

uiautomator怎么点击屏幕指定位置

在通道 plugins.flutter.io/path_provider 上找不到方法 getApplicationDocumentsDirectory 的实现

如何使用屏幕上的位置(边界)在 UiAutomator 中查找对象