3

我正在编写一个KIF 测试来测试我正在开发的 iPhone 应用程序的入职流程。当请求ALAssetsLibrary访问时,会弹出通常的警报视图,但 KIF 无法识别此警报视图的可访问性标签。

截屏

当我测试以下内容时,我的测试失败:

[tester waitForViewWithAccessibilityLabel:@"OK"];

而我在 iOS 模拟器中的 Accessibility Inspector 明确指出这是该视图的正确标签。

我想知道这是否是因为这些警报视图在沙箱之外,有人知道是否是这种情况,是否有一些解决方法可以使用 KIF 对其进行测试?

任何帮助是极大的赞赏。

4

1 回答 1

3

问题可能是 UIAlertViews 显示在另一个窗口中,或者像您怀疑的那样,警报视图是从另一个进程呈现的,应用程序代码应该无法访问。有没有办法检查另一个 UIWindow 实例中的视图?

更新

如此处所述:https ://groups.google.com/forum/#!msg/kif-framework/iDBomK8kyL8/wLtlh80YrpsJ

据我了解,触摸事件由 iOS 路由到 UIWindow,然后由 UIWindow 负责处理它认为合适的事件。KIF 和朋友使用一种技术,其中综合创建触摸事件,然后将其发送到 UIWindow。由于您的应用程序代码无权访问显示警报框的 UIWindow,因此您的应用程序无法向其发送触摸事件。

当然,您可以使用[[UIApplication sharedApplication] windows]或使用手动循环 UIApplication 的窗口[[UIApplication sharedApplication] keyWindow],但我认为测试框架不支持。

于 2014-04-28T13:30:20.480 回答