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



我正在尝试验证我的 XCTests 代码是否选中了复选框。我看到该复选框在 UI 中处于选中状态,但我的代码返回"否"感谢帮助。下面是我的代码

XCUIElement *checkBox = [[[[textField childrenMatchingType:XCUIElementTypeOther] elementBoundByIndex:1] childrenMatchingType:XCUIElementTypeButton] elementBoundByIndex:1];
BOOL isChecked = checkBox.isSelected;

is选中即使选中复选框也返回"否">

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

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

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

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

BOOL isChecked = [switch isOn];

最新更新