如何使用UIAutomator测试框架中的方法By.clazz

时间:2017-10-18 17:05:15

标签: android uiautomator android-uiautomator

我正在使用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。

所以,问题是:

  1. 是否可以使用By.clazz for Activity来查找其对象?
  2. 是否有其他方法可以使用UIAutomator查找活动对象?
  3. 我做对了吗?或者也许有一些错误?是否可以使用UiAutomator?
  4. 谢谢!

0 个答案:

没有答案