【问题标题】:Labels of the 'ALAssetsLibrary' access request alert view aren't recognized by KIFKIF 无法识别“ALAssetsLibrary”访问请求警报视图的标签
【发布时间】:2014-06-13 18:50:13
【问题描述】:

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

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

[tester waitForViewWithAccessibilityLabel:@"OK"];

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

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

非常感谢任何帮助。

【问题讨论】:

    标签: ios objective-c integration-testing alassetslibrary kif


    【解决方案1】:

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

    更新

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

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

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

    【讨论】:

    • 看来你是对的,我发现a discussion 支持你的怀疑。愿意在您的答案中包含此链接和报价吗?然后我会接受它作为答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-18
    • 2017-05-30
    • 2022-01-05
    • 2013-02-19
    • 2021-11-16
    • 1970-01-01
    相关资源
    最近更新 更多