【问题标题】:ADB dump view hierarchy different from UiAutomator in Android Studio?ADB 转储视图层次结构与 Android Studio 中的 UiAutomator 不同?
【发布时间】:2018-11-07 16:31:46
【问题描述】:
我正在尝试使用其 resourceId 在 3rd 方 android 应用程序中获取一个元素。当我使用命令adb shell uiautomator dump 时,XML 视图层次结构会显示我正在寻找的元素。但是,当我在运行 UITest 时尝试在 Android Studio 中使用 UiAutomator 获取元素时,使用
device.findObject(new UiSelector().resourceId(myResourceID)),没有这样的元素。
有什么会导致这种行为的吗?我对 Android 很陌生,所以如果我需要提供更多详细信息,请告诉我。谢谢!
【问题讨论】:
标签:
android
android-studio
adb
ui-automation
android-uiautomator
【解决方案1】:
无法从您发布的信息中提取问题的原因。转储之间可能存在差异。
但是,culebra.dtmilano.com 可能会对您的情况有所帮助,因为您可以直接在树上选择视图,如此处所示(将鼠标悬停在设置上)
并生成相应的 Java(在这种情况下)或 Python、Kotlin 等代码,以确保视图的选择器是正确的
@Test
public void culebraGeneratedTest() throws Exception {
mDevice.findObject(By.desc("Settings").clazz("android.widget.TextView").text("Settings").pkg("com.google.android.apps.nexuslauncher")).clickAndWait(Until.newWindow(), DEFAULT_TIMEOUT);
}