我想使用 xamarin UI 测试自动化我们的 iOS 应用程序。要访问该应用程序,用户必须提供他/她的 TouchID。但是 Xamarin 测试记录器和 Repl() 都未能识别 Touch ID 系统对话框(请参见附件截图)。
这个对话框不是我们开发人员开发的,它是一个系统对话框。
如何执行与此 Touch ID 关联的操作?
谢谢
最佳答案
系统对话框不是您可以使用 calabash 或 Xamarin.UITest 查询的内容,这非常烦人。
为此,您需要使用后门来模拟成功或失败状态。您可以在此处阅读更多相关信息:
https://developer.xamarin.com/guides/testcloud/uitest/working-with/backdoors/
基本上您在 AppDelegate 中定义一个方法:
[Export("touchIdBackdoor:")] // notice the colon at the end of the method name
public NSString TouchIdBackdoor(NSString value)
{
if (value == "true")
{
//simulate ok finger press
}
else
{
//simulate failed finger
}
}
然后在您的测试中,当您希望触摸 id 出现时,您调用后门:
app.Invoke("touchIdBackdoor:", "true");
关闭触摸 ID 并设置您需要继续的任何内容。
关于ios - Xamarin UI 测试无法识别 iOS 应用程序的系统对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43680142/