验证iOS已从正在运行的应用程序导航到Xcode UI测试中的另一个应用程序

时间:2016-08-22 19:01:55

标签: objective-c xcode xctest xcode-ui-testing

我的应用中有一个按钮,可以将用户导航到Mail应用程序到电子邮件对话框。我正在尝试使用Xcode UI测试来验证是否已发生这种情况。问题是,一旦我在Mail应用程序中,我无法获取当前正在运行的应用程序的上下文,因为它已被后台化,因此我无法验证屏幕上是否有任何元素。最重要的是,Xcode UI测试在点击按钮并导航到邮件页面后实际上会抛出错误:

<unknown>:0: error: -[MyTests testButton] : UI Testing Failure - Failure getting snapshot Error Domain=XCTestManagerErrorDomain Code=12 "Failed to get main window after 30 retries: kAXErrorServerNotFound (see <rdar://problem/15530121>)" UserInfo={NSLocalizedDescription=Failed to get main window after 30 retries: kAXErrorServerNotFound (see <rdar://problem/15530121>)}

我可以使用哪种断言验证用户是否已从应用程序导航到Mail应用程序中?

1 个答案:

答案 0 :(得分:1)

UI测试无法与应用程序之外的任何内容进行交互。一旦您的应用程序打开Mail.app,框架就无法再与设备进行交互。

要验证这一点,请尝试在邮件打开后打印出应用程序的层次结构。您会注意到Mail和导航栏中的任何内容都不会显示 - 您只能看到应用的信息。

print(XCUIApplication().debugDescription)