如果测试跨越多个活动,是否有办法获得当前活动?
getActivtiy()方法只提供一个用于启动测试的活动.
我尝试过类似下面的内容,
public Activity getCurrentActivity() {
Activity activity = null;
ActivityManager am = (ActivityManager) this.getActivity().getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1);
try {
Class<?> myClass = taskInfo.get(0).topActivity.getClass();
activity = (Activity) myClass.newInstance();
}
catch (Exception e) {
}
return activity;
}
Run Code Online (Sandbox Code Playgroud)
但我得到了空对象.
我正在使用Espresso进行活动转换测试,但我不知道这是否是最好的方法:
public void testStartLogin() {
onView(withId(R.id.register)).perform(click());
onView(withId(R.id.login_password)).check(matches(isDisplayed()));
onView(withId(R.id.login_show_password)).check(matches(isDisplayed()));
}
Run Code Online (Sandbox Code Playgroud)
最后两个来自第二个活动,但这对我来说太可怕了.有什么不同的方式吗?
使用espresso,我们点击一个登录按钮,启动外部网站(Chrome自定义标签),您可以登录,然后重定向回我们的Android应用程序.
Espresso有没有办法:
1)验证正在启动的URL
2)访问网站上的元素,以便我可以输入登录信息并继续登录
当我尝试在咖啡启动导航查看它,什么也不显示的页面,如果我尝试记录,它不会对我拿起进入页面上的任何内容.
它启动我的应用程序,选择登录按钮,打开网站,但它无法访问元素.
我也尝试过:
更新:这是使用Chrome自定义标签(不是网络视图),因此Espresso Web无法使用.
android android-espresso android-uiautomator chrome-custom-tabs android-espresso-recorder
android ×3