我正在使用UIAutomator测试框架进行长时间的测试(关于我的验收测试)。我需要等到一些活动开始。 我决定使用 By.clazz (android.support.test.uiautomator包)方法来查找活动对象。我期待像
这样的东西uiDevice.wait(Until.findObject(By.clazz(SomeActivity.class)), 30000);
会奏效。但事实并非如此。我想我的活动对象无法找到。我尝试使用其他Params的其他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);
我找到了使用 By.res 的解决方法,例如
uiDevice.wait(Until.findObject(By.res(BASIC_PACKAGE, "someMainIdInSomeFragment")), 30000);
但是我的应用程序结构非常复杂,具有基本活动等等。我经常为不同的活动设置相同的布局,并加载不同的片段。所以我需要知道,无论加载的片段如何,我们都完全开始使用SomeActivity。
所以,问题是:
谢谢!