如何从 UI Test 访问 Apple Id“登录”对话框?

sil*_*sky 2 xcode ios xcode-ui-testing xctestcase

我有一些 UI 测试,想测试当我按下“订阅”按钮时会发生什么。在模拟器中,会显示一条警告,要求使用 Apple ID 登录:

在此输入图像描述

app.alerts["Sign In"]我尝试使用谓词和使用函数等待警报addUIInterruptionMonitor。没有运气。我什至尝试等待“取消”按钮出现,但这也不起作用。

有什么想法如何处理此警报并按“取消”吗?

lag*_*man 7

此警报的问题在于它不是从您的应用程序创建的,而是从系统应用程序 - Springboard创建的创建的。因此,为了能够从该应用程序查询元素,您必须XCUIApplication使用 Springboard 包 ID 创建对象:

let springboardApp = XCUIApplication(bundleIdentifier: "com.apple.springboard")
Run Code Online (Sandbox Code Playgroud)

然后,通过以下方式找到您的警报:

let signInAlert = springboardApp.alerts.element
Run Code Online (Sandbox Code Playgroud)

然后您应该能够找到“取消”按钮:

signInAlert.buttons["Cancel"].tap()
Run Code Online (Sandbox Code Playgroud)