如何在Expo应用的Maestro E2E测试中获取自定义切换按钮的isActive状态?
如何用Maestro检查React Native自定义切换按钮的isActive状态
你的组件已经正确配置了accessibilityState.selected和testID,这是实现状态检查的核心依据,以下是具体的Maestro测试方案:
方案一:直接检查Accessibility状态(推荐)
利用组件上绑定的accessibilityState={{ selected: isActive }},通过Maestro的assert命令直接验证选中状态:
# 初始状态:检查按钮未激活(isActive=false) - assert: selected: false element: testID: "AC_LABELS.TOGGLE_COMPONENT_BUTTON_ITEM" # 点击切换按钮状态 - tapOn: testID: "AC_LABELS.TOGGLE_COMPONENT_BUTTON_ITEM" # 切换后:检查按钮已激活(isActive=true) - assert: selected: true element: testID: "AC_LABELS.TOGGLE_COMPONENT_BUTTON_ITEM"
方案二:结合UI样式辅助验证(可选)
如果你的动画样式(colorAnimation/togglePositionAnimation)会带来可见的UI变化(比如背景色、滑块位置偏移),可以额外添加样式断言做双重验证:
# 假设激活状态下切换栏背景色为#007AFF - assert: element: testID: "AC_LABELS.TOGGLE_COMPONENT_BUTTON_ITEM" matches: background: "#007AFF"
注意事项
- 确保
AC_LABELS.TOGGLE_COMPONENT_BUTTON_ITEM是实际传递给testID的字符串值,Maestro需要精确匹配。 - 优先使用Accessibility状态断言,它直接绑定业务逻辑的
isActive状态,比样式断言更稳定可靠。
内容的提问来源于stack exchange,提问作者RightHot
相关产品推荐
相关产品推荐

