我有一个react-native创建的应用程序,它包含了一个从底部的模态提升。现在我特灵使用appium来自动化应用程序,在android中它工作得很好。而在iOS中,当我尝试在模态上使用appium inspector时,它只是被穿透并在下面返回控制。
<Modal style={styles.bottomModal} isVisible={btmModal} backdropOpacity={0.3} onBackdropPress={this._closeBtmModal}>
<View style={styles.ways}>
<TouchableOpacity accessibilityLabel={IDS.MANUAL_NAV_CAMERA} testID={IDS.MANUAL_NAV_CAMERA} style={styles.line} onPress={() => this._navCamera()}>
<Image style={styles.scan} source={require('../../../resources/images/scan.png')} /><Text style={styles.lineTxt}>扫码绑定</Text>
</TouchableOpacity>
<TouchableOpacity accessible={true} accessibilityLabel={IDS.MANUAL_ADD_TEXT} testid={IDS.MANUAL_ADD_TEXT} style={styles.line} onPress={this._navManualBindMfa}>
<Text style={styles.lineTxt}>手动输入</Text>
</TouchableOpacity>
<TouchableOpacity accessible={true} accessibilityLabel={IDS.MANUAL_ADD_MODAL_CANCEL} testId={IDS.MANUAL_ADD_MODAL_CANCEL} style={[styles.line, styles.cancelline]} onPress={this._closeBtmModal}>
<Text style={styles.cancelTxt}>取消</Text>
</TouchableOpacity>
</View>
</Modal>
试着让appium检查员在这个模式下工作。谢谢你的建议。
3条答案
按热度按时间64jmpszr1#
可尝试的策略:
1."在最外层设置accessible = {false}可使子视图可访问。"
请参见www.example.comhttps://github.com/appium/appium/issues/6517#issuecomment-298037046
1.如果你的modal有一个透明的背景,后面的组件可能仍然会被标记为可见。我使用了一个环境变量设置在构建中,用于使用appium进行测试,它删除了透明选项。这并不意味着正在测试的构建与正常的构建是不相同的
x7yiwoj42#
在我们的项目中,障碍是元素
Pressable
。将属性accessible={false}
设置为它修复了Appium在模式窗口上查找元素的功能。<TouchableOpacity accessible={false}>
还在屏幕上查找元素。我必须***强调***Appium Inspector的屏幕截图视图仍然无法识别元素,但它的搜索功能(iOS的“id”)可以找到它们。
7d7tgy0s3#
到目前为止,我的印象是,如果Appium Inspector没有呈现一个组件,那么就意味着它没有看到它,因此我将无法在测试中使用它。
事实证明,它的搜索引擎仍然可以找到这样的组件,因此我们可以在测试中使用它,尽管有时需要向某些组件添加额外的 prop ,如
accessible={false}
或向父组件添加testID
。