当accessible为true时,React Native无法找到子元素

jon*_*dar 6 react-native

有了这个JSX:

<View>
  <Text testID='t1'>text 1</Text>
  <Text testID='t2'>text 2</Text>
</View>
Run Code Online (Sandbox Code Playgroud)

我可以通过它们找到子元素testID(例如使用Appium)

如果我改变了View一个TouchableOpacity子元素似乎UIAElement在iOS上聚集成一个单然后无法找到.

看起来TouchableOpacity它的可访问属性被硬编码为true并且可以实现收集行为(请参阅https://code.facebook.com/posts/435862739941212/making-react-native-apps-accessible/)

这是预期的行为吗?它使测试变得非常困难.

小智 7

可触摸的任何元素或组件默认为accessible = {true}.如果您不希望它们组合在一起,请尝试以下方法:

<View accessible={false}>
  <Text testID='t1'>text 1</Text>
  <Text testID='t2'>text 2</Text>
</View>
Run Code Online (Sandbox Code Playgroud)

这应该允许孩子成为他们的一个元素,而不是一个元素(视图元素).