我正在编写KIF test来测试我正在开发的iPhone应用程序的入门流程。当要求ALAssetsLibrary
访问时,会弹出常规警报视图,但KIF无法识别此警报视图的可访问性标签。
当我测试以下内容时,我的测试失败:
[tester waitForViewWithAccessibilityLabel:@"OK"];
我的iOS模拟器中的辅助功能检查器清楚地表明,这是此视图的正确标签。
我想知道这是否是因为这些警报视图不在沙箱中,有人知道这种情况是否存在,是否可以通过KIF进行测试吗?
任何帮助是极大的赞赏。
最佳答案
问题可能是UIAlertViews显示在另一个窗口中,或者像您怀疑的那样,警报视图是从另一个过程呈现的,而该过程对于应用程序代码而言是不可访问的。有没有一种方法可以检查另一个UIWindow实例中的视图?
更新
如此处所述:https://groups.google.com/forum/#!msg/kif-framework/iDBomK8kyL8/wLtlh80YrpsJ
据我了解,触摸事件是由iOS路由到UIWindow的,然后由UIWindow负责处理它认为合适的事件。 KIF和 friend 使用一种技术来合成触摸事件,然后将其发送到UIWindow。由于您的应用程序代码无权访问显示警报框的UIWindow,因此您的应用程序无法向其发送触摸事件。
当然,您可以使用[[UIApplication sharedApplication] windows]
或使用[[UIApplication sharedApplication] keyWindow]
手动遍历UIApplication的窗口,但是我认为测试框架不支持。
关于ios - KIF无法识别“ALAssetsLibrary”访问请求警报 View 的标签,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23337452/