如何在XCode7上做系统按钮的自动化UI测试?[英] How to do automated UI testing for system button on XCode7?

本文是小编为大家收集整理的关于如何在XCode7上做系统按钮的自动化UI测试?的处理方法,想解了如何在XCode7上做系统按钮的自动化UI测试?的问题怎么解决?如何在XCode7上做系统按钮的自动化UI测试?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我的故事板只有一个 UI,它有一个导航栏和一个 UIBarButtonItem 系统项:添加.它还有另一个信息 UIButton.用英语进行 UI 测试时,一切正常,没有任何问题.但是,如果您将语言切换到另一种语言,则总是失败.这是测试代码片段:

app.navigationBars["My Product"].buttons["Add"].tap()
app.buttons["More Info"].tap()

根据错误日志,Xcode 找到了另一种语言.这里是:

<块引用>

断言失败:UI 测试失败 - 未找到"更多信息"按钮的匹配项

查询输入是

Button 0x7fa4ca65a1d0: traits: 8724152321, {{8.0, 31.5}, {21.0, 21.0}}, label: '戻る',
Button 0x7fa4ca657700: traits: 8589934593, {{330.5, 26.0}, {40.0, 30.0}}, label: '追加',
Button 0x7fa4ca4658d0: traits: 8589934593, {{312.0, 605.0}, {22.0, 22.0}}, label: '詳細情報'

但是,我没有为它创建任何本地化字符串,因为它只是 iOS 系统创建的图像.有谁知道如何修理它?非常感谢.

推荐答案

选项 1:设置默认语言

为 UI 测试创建一个新方案并设置默认应用程序语言.这会将应用程序锁定到一个本地化文件中,以便您可以针对该语言编写所有测试.

从 Product -> Scheme -> Manage Schemes 或 ⌘⇧, 中设置选项.然后选择选项选项卡并设置语言.

Xcode - 设置默认应用程序语言

优点:简单的一次性更改.

缺点:不能用于创建带有 snapshot 的本地化屏幕截图(通过 UI 测试运行您的应用并在此过程中生成 App Store 屏幕截图的工具.

选项 2:将 -accessibilityIdentifier 用于本地化字符串

不要通过显示的文本或值访问项目,而是使用 accessibilityIdentifier.这是由 UI 测试框架读取的,但从未向用户显示或读取(即使打开了可访问性).在旧的 UIAutomation 文档中,Apple 提到将其用于开发人员功能,这看起来像是一个很好的用例.

然后您可以像往常一样使用本地化版本继续设置 accessibilityLabel 和 accessibilityValue.

优点:可用于更通用的解决方案,例如自动截屏.

缺点:可能需要做更多工作来更改您需要"未本地化"进行测试的每个标签.

本文地址:https://www.itbaoku.cn/post/924447.html