我正在我的应用程序中使用 UiAutomator 跨应用程序编写一些自动化测试用例。我的目标是找到我点击的所有应用程序的当前活动。
我有一个名为MyApp的项目,其中包含一个名为com.example的包,其中包含一个活动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附加到监视器,我可以在这行代码中获取活动实例
活动 currentActivity = instrumentation.waitForMonitorWithTimeout(monitor, 3000);
现在如果我改变流程。HomeMenu --> SomeOtherApp并使用 SomeOtherApp 的完全限定的launcherActivity 连接到监视器说com.someotherapp.MainActivity。我无法获取活动实例。当前活动为空
有没有办法可以获取我通过 UiAutomator 启动的任何应用程序的当前 Activity 实例?