我正在尝试将UI测试集成到一个非常大的反应原生项目中。但是只要我想记录ui测试,我就会收到警告
Timestamped Event Matching Error: Failed to find matching element
这是我正在击中的ui元素。
<TouchableOpacity style={containerStyle}
onPress={this.props.onPress}
accessibilityLabel='back_button_touchable'
accessible={true}
testID='back_button_touchable'
underlayColor='#99d9f4'>
<Image style={iconStyle} source={require('../white-arrow.png')}/>
<Text style={styles.text}>{this.props.text}</Text>
</TouchableOpacity>
我刚刚设置了一个新的反应本机项目,并试图让ui测试运行,这很好。因此,这引出了一个问题,即元素检索以某种方式被现有的代码/构建设置阻止。
有什么想法可以禁用或阻止ui测试吗?
答案 0 :(得分:4)
对于其他寻求答案的人-我发现RN中的Touchable元素在UI测试方面存在问题。
如果您在Touchable上设置了accessible = {false},则在记录时,testID会作用于子Text&View元素上。
<TouchableOpacity onPress={onPressFn} accessible={false}>
<View style={styles.buttonContainer} testID="button">
<Text style={styles.buttonText}>
{children}
</Text>
</View>
</TouchableOpacity>