【发布时间】:2014-02-10 08:52:54
【问题描述】:
尝试运行 KIF 测试。我想点击带有可访问性标签“登录”的按钮,但它超时并显示消息“视图未启用交互”。
[tester tapViewWithAccessibilityLabel:@"SIGN IN"];
按钮在那里,它的标签中有这个文本。如何“启用”这个 UI 元素?
【问题讨论】:
尝试运行 KIF 测试。我想点击带有可访问性标签“登录”的按钮,但它超时并显示消息“视图未启用交互”。
[tester tapViewWithAccessibilityLabel:@"SIGN IN"];
按钮在那里,它的标签中有这个文本。如何“启用”这个 UI 元素?
【问题讨论】:
FOR KIF:在视图上告知用户交互信息的另一种方法是打开 iOS 模拟器中的 Accessibility Inspector。这将让您单击视图并查看它们是否实际上可单击/或被其他视图无意中阻止。它还会显示视图是否具有可访问性标签、特征(按钮、标签、静态文本)和/或框架。对于检查您的用户交互很有用 - 即。如果是静态文本或按钮等。
打开可访问性检查器:运行您的应用程序,打开模拟器--->单击主页按钮---->转到设置--->常规--->可访问性--->切换可访问性检查器打开--->再次运行您的应用程序或再次单击主页按钮,然后单击您的应用程序。
【讨论】:
您应该尝试在用户定义的运行时属性下的身份检查器下的 Xcode 界面构建器中设置accessibilityLabel(键路径设置为“accessibilityLabel”,类型设置为“String”,值设置为“SIGN IN”。
还有其他方法可以设置accessibilityLabel,例如您可以说的代码:
[_buttonName setValue:@"SIGN IN" forKey:@"accessibilityLabel"];
我希望这篇文章有所帮助。
【讨论】:
accessibilityLabel 对我有用,尽管 KIF 将其视为已设置。
如果视图的isUserInteractionActuallyEnabled 产生NO,您会收到此错误消息。例如查看KIFUITestActor.m 中tapAccessibilityElement:inView: 的定义。 isUserInteractionActuallyEnabled 方法在 UIView-KIFAdditions.m 中实现,主要检查视图的属性 isUserInteractionEnabled,并在您点击导航栏或操作表中的按钮时进行更精细的检查。
【讨论】: