Android 如何使用UIAutomator测试框架中的method By.clazz

Android 如何使用UIAutomator测试框架中的method By.clazz,android,android-uiautomator,Android,Android Uiautomator,我正在使用UIAutomator测试框架进行长测试(关于我的验收测试)。我需要等到一些活动开始。 我决定使用.clazz(android.support.test.uiautomator包)方法查找活动对象。我以为是这样的 uiDevice.wait(Until.findObject(By.clazz(SomeActivity.class)), 30000); 会有用的。但事实并非如此。我想找不到我活动的对象。我尝试使用其他具有不同参数的By.clazz方法,但没有成功 因此,我的代码非常简单

我正在使用UIAutomator测试框架进行长测试(关于我的验收测试)。我需要等到一些活动开始。 我决定使用.clazz(android.support.test.uiautomator包)方法查找活动对象。我以为是这样的

uiDevice.wait(Until.findObject(By.clazz(SomeActivity.class)), 30000);
会有用的。但事实并非如此。我想找不到我活动的对象。我尝试使用其他具有不同参数的By.clazz方法,但没有成功

因此,我的代码非常简单:

UiDevice uiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());

/*.... do something...
       like click on buttons which will open some activities...
*/

//does not work, time value just for sample
uiDevice.wait(Until.findObject(By.clazz(SomeActivity.class)), 30000);
我找到了使用.res的变通解决方案,如

uiDevice.wait(Until.findObject(By.res(BASIC_PACKAGE, "someMainIdInSomeFragment")), 30000);
但我有非常复杂的应用程序结构和基本活动等。我经常为不同的活动使用相同的布局,加载不同的片段。所以我需要知道我们确实开始了一些活动,不管加载的片段是什么

因此,问题是:

  • 活动是否可以使用By.clazz查找其对象
  • 是否有其他方法使用UIAutomator查找活动对象
  • 我做的一切都对吗?或者可能有一些错误?这可能与UiAutomator有关吗 谢谢