【发布时间】:2017-01-04 18:07:12
【问题描述】:
我有一个应用程序,我正尝试在其上放置 Xamarin UI 测试。我需要对应用程序进行后门以绕过我的登录过程。 我的后门方法触发得很好。
[Activity(Label = "AppName", Icon = "@drawable/icon", Theme = "@style/Theme.Splash", MainLauncher = true, NoHistory = true)]
public class SplashActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
StartActivity(typeof(MainActivity));
}
[Java.Interop.Export("BackDoor")]
public void BackDoor()
{
var myActivity = {Magic code to get reference to the the instance of MainActivity goes here}
}
}
但是它在我的启动画面中触发,我需要它获取对我实际 MainActivity 的引用,而不是我的 SplashActivity。如何在 BackDoor 方法中获取对 MainActivity 的引用?
Xamarin 后门文档: https://developer.xamarin.com/recipes/testcloud/start-activity-with-backdoor/ https://developer.xamarin.com/guides/testcloud/uitest/working-with/backdoors/
【问题讨论】:
-
根据Android后门方法指南,不能返回
object类型,只能返回string、Java.Lang.String或void。请参阅:developer.xamarin.com/guides/testcloud/uitest/working-with/…。你不想从后门开始下一个Activity吗?如果是这样,请按照您更紧密地链接的指南进行操作。 -
没关系,发表评论回答
-
它实际上是一个 Xamarin Forms 应用程序。我必须获取在启动屏幕之后启动的 MainActivity 以获取对 Xamarin.Application 的引用以获取对导航堆栈的引用以弹出登录。
-
自动化登录会不会更容易,IOW输入用户信息并实际登录?
-
据我所知,我无法使用 Xamarin.UI.Tests 解决 web 视图中的组件。我认为最后我只需要创建一个单独的启动器应用程序,它没有启动屏幕并自动绕过登录。但是我实际上不会测试我的应用程序。感谢您的跟进。
标签: xamarin xamarin.android xamarin.forms xamarin.uitest