【问题标题】:iOS XCTests - how to verify checkbox button is checked or notiOS XCTest - 如何验证复选框按钮是否被选中
【发布时间】:2018-09-24 03:07:49
【问题描述】:

我正在尝试验证是否为我的 XCTests 代码选中了复选框。 我看到在 UI 中选中了该复选框,但我的代码返回“NO” 帮助表示赞赏。下面是我的代码

XCUIElement *checkBox = [[[[textField childrenMatchingType:XCUIElementTypeOther] elementBoundByIndex:1] childrenMatchingType:XCUIElementTypeButton] elementBoundByIndex:1];

BOOL isChecked = checkBox.isSelected;

即使选中复选框,isChecked 也会返回“NO”

【问题讨论】:

  • 您是否使用UIButton 作为复选框?或者您是否为此使用 iOS 标准控件,UISwitch?我建议在 iOS 上使用 UISwitch。复选框不是 iOS 上的常见范例。

标签: ios objective-c ui-automation


【解决方案1】:

我玩 XCTests 已经有一段时间了,但我想我用过类似[checkBox.value boolValue] 的东西。

【讨论】:

    【解决方案2】:

    isSelected 属性用于可访问性。它并不表示复选框是否被选中。它基本上返回打开辅助功能时当前是否选择了控件(例如,对于视障用户,iOS 将在屏幕上选择控件并将它们读给用户)。

    您似乎使用UIButton 制作了自己的复选框,以提供类似于复选框的功能。如果您创建了自己的自定义控件来切换 UIButton 的状态,则还必须实现一种存储选择状态的方法。如果没有看到您的其余实施,我们任何人都无法知道如何获取状态。

    我建议使用UISwitch 控件,它以原生、一致的方式提供您想要的功能。如果你这样做,那将是一个简单的测试:

    BOOL isChecked = [switch isOn];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-07
      • 2019-03-05
      • 2011-04-04
      • 2019-03-16
      • 1970-01-01
      • 1970-01-01
      • 2018-03-23
      • 2017-06-24
      相关资源
      最近更新 更多