我在React Native中有几个自定义组件,在使用Appium进行端到端测试时,我想访问它们。例如,我的某些组件具有嵌套视图(已删除不必要的细节):
MyView
<View accessibilityLabel={this.props.accessibilityLabel}>
<TextInput accessibilityLabel={'input'} />
<Text accessibilityLabel={'error'}>{this.props.error}</Text>
</View>
请注意包含视图如何由父视图设置其可访问性标签。
我有一个包含上面多个视图的视图,例如:
<MyView accessibilityLabel={'email'}/>
<MyView accessibilityLabel={'password'}/>
<MyView accessibilityLabel={'confirmPassword'}/>
在Appium中,我想分别访问每个元素的TextInput
字段,如下所示:
const emailInput = await driver.elementByAccessibilityId('email')
.elementByAccessibilityId('input');
const passwordInput = await driver.elementByAccessibilityId('password')
.elementByAccessibilityId('input');
但是,passwordInput
无法正确加载。 accessibilityLabel
是否必须唯一?嵌套它们是不可能的吗?我该如何解决这个问题?
我知道我可以只包含另一个prop
来将accessibilityLabel
中的TextInput
的{{1}}保留在MyView
中,但这似乎是肿的,不是我的答案。我在寻找。