【发布时间】:2017-01-12 08:29:33
【问题描述】:
我正在使用 UiAutomator 在我的应用程序中跨应用程序编写一些自动化测试用例。我的目标是找到我点击的所有应用的当前活动。
我有一个名为 MyApp 的项目,其中包含一个名为 com.example 的包和一个 Activity,MainActivity
我尝试了以下(androidTest 下我的应用程序中的所有内容)
public class ActivityTester extends InstrumentationTestCase {
private UiDevice device;
@Test
public void testAdd() throws Exception {
}
@Override
protected void setUp() throws Exception {
super.setUp();
Instrumentation instrumentation = getInstrumentation();
Instrumentation.ActivityMonitor monitor = instrumentation.addMonitor("com.example.MainActivity", null, false);
device = UiDevice.getInstance(instrumentation);
device.pressHome();
device.wait(Until.hasObject(By.desc("Apps")), 3000);
UiObject2 appsButton = device.findObject(By.desc("Apps"));
appsButton.click();
device.wait(Until.hasObject(By.text("MyApp")), 3000);
UiObject2 calculatorApp = device.findObject(By.text("MyApp"));
calculatorApp.click();
Activity currentActivity = instrumentation.waitForMonitorWithTimeout(monitor, 3000);
}
我在这里点击 HomeMenu 并启动 Myapp 并使用 com.example.MyActivity 连接到显示器,我可以得到这行代码中的activity实例
Activity currentActivity = instrumentation.waitForMonitorWithTimeout(monitor, 3000);
现在如果我改变流程。 HomeMenu --> SomeOtherApp 并使用 SomeOtherApp 的完全限定的 launcherActivity 连接到监视器,例如 com.someotherapp.MainActivity。 我无法获取活动实例。当前活动为空
有没有办法可以获取我通过 UiAutomator 启动的任何应用的当前 Activity 实例?
【问题讨论】:
标签: android android-uiautomator android-espresso android-junit