使用这个JSX:
<View>
<Text testID='t1'>text 1</Text>
<Text testID='t2'>text 2</Text>
</View>
我可以通过testID
找到子元素(例如使用Appium)
如果我将View
更改为TouchableOpacity
,则子元素似乎会在iOS上聚集到一个UIAElement
中,然后无法找到。
看起来TouchableOpacity
将其可访问属性硬编码为true并启用收集行为(请参阅https://code.facebook.com/posts/435862739941212/making-react-native-apps-accessible/)
这是预期的行为吗?它使测试变得非常困难。
答案 0 :(得分:6)
任何可触摸的元素或组件都默认为accessible = {true}。如果您不希望它们组合在一起,请尝试以下方法:
<View accessible={false}>
<Text testID='t1'>text 1</Text>
<Text testID='t2'>text 2</Text>
</View>
这应该允许孩子成为他们的一个元素,而不是一个元素(视图元素)。