ios - Xamarin UI 测试无法识别 iOS 应用程序的系统对话框

标签 ios xamarin

我想使用 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/

相关文章:

c# - 在 Xamarin 中实现 ECDiffieHellmanCng

ios - 在 SwiftUI 中将 View 注入(inject) View

ios - 从 xib 文件中以模态方式呈现 View Controller

c# - 如何在 Xamarin Android 中实现 JobScheduler

ssl - Xamarin 中使用 TLS 1.2 的 HTTPS

c# - 如何强制 View 更新 Xamarin Forms 中的绑定(bind)属性?

c# - Datepicker 不会在 xamarin.forms 中的默认日期选择时触发 - Android

ios - 在 Swift 中通过多个委托(delegate)链接 UIButton 点击

ios - Swift 在 Storyboard中显示 segues(箭头)时以编程方式呈现 ViewController

ios - iCloud 核心数据存储的自定义迁移选项