iOS XCTests - 如何验证复选框按钮是否已选中

时间:2018-04-13 17:31:46

标签: ios objective-c ui-automation

我正在尝试验证是否已为我的XCTests代码选中了复选框。 我看到在UI中选中了复选框,但我的代码返回“NO” 感谢帮助。以下是我的代码

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

BOOL isChecked = checkBox.isSelected;
即使选中复选框,

isChecked也会返回“NO”

2 个答案:

答案 0 :(得分:0)

自从我玩XCTests以来已经有一段时间,但我认为我使用的是像[checkBox.value boolValue]这样的东西。

答案 1 :(得分:0)

isSelected属性用于辅助功能。它不表示是否选中了复选框。它基本上返回当Accessibility打开时当前是否选择了控件(例如,对于视觉上受影响的用户,iOS将在屏幕上选择控件并将其读取给用户)。

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

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

BOOL isChecked = [switch isOn];