iOS XCUITest 模拟指纹

Posted

技术标签:

【中文标题】iOS XCUITest 模拟指纹【英文标题】:iOS XCUITest simulate fingerprint 【发布时间】:2017-10-04 20:46:18 【问题描述】:

我正在使用原生工具编写自动化 UI 测试。在一个流程中弹出指纹认证。我怎样才能通过它,前进到下一个屏幕?

【问题讨论】:

【参考方案1】:

您不能在 UITest 中伪造指纹。要通过身份验证并测试您的应用程序中被 TouchID 提示屏蔽的部分,您可以在未启用 TouchID 的设备上运行测试。或者在模拟器上运行它(不启用 TouchID)。

当 TouchID 未启用时,操作系统会要求您输入设备的密码。您可以输入密码并通过身份验证。在模拟器上运行测试时,您可以输入任何内容作为密码。总会过去的。

这是一个通过输入密码通过身份验证的示例测试:

func testExample() 
   let springboard = XCUIApplication(bundleIdentifier: "com.apple.springboard")
   let app = XCUIApplication()
   app.launch()

   // this causes the authentication prompt to be displayed
   app.buttons["Press Me!"].tap()

   let passcodeInput = springboard.secureTextFields["Passcode field"]
   passcodeInput.tap()
   passcodeInput.typeText("abc\r")

   // continue test
   ....

【讨论】:

我知道这有点老了,但这让我很开心!我试图这样做好几天了!我们正在为 iosandroid 构建一个原生应用程序,我已经尝试为此构建一个 XCUI 测试好几天了。谢谢!

以上是关于iOS XCUITest 模拟指纹的主要内容,如果未能解决你的问题,请参考以下文章

iOS:XCUITest 中的模拟器位置不起作用

XCUItest addUIInterruptionMonitor 未在 iOS14 模拟器和 xcode 12 上捕获警报

XCUITest - 选定的单元格未显示在 iOS 15 的层次结构树中

XCUITest - 如何模拟设备锁定

带有 PACT 的 XCUITest 不返回模拟网络响应

如何暂停 XCUITest 以进行手动模拟器操作?