React Native 无法通过appium识别模态

kqqjbcuj  于 2023-02-25  发布在  React
关注(0)|答案(3)|浏览(164)

我有一个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检查员在这个模式下工作。谢谢你的建议。

64jmpszr

64jmpszr1#

可尝试的策略:
1."在最外层设置accessible = {false}可使子视图可访问。"
请参见www.example.comhttps://github.com/appium/appium/issues/6517#issuecomment-298037046
1.如果你的modal有一个透明的背景,后面的组件可能仍然会被标记为可见。我使用了一个环境变量设置在构建中,用于使用appium进行测试,它删除了透明选项。这并不意味着正在测试的构建与正常的构建是不相同的

x7yiwoj4

x7yiwoj42#

  • React-天然0.63
  • 桌面应用程序1.22.0
  • 药品检验员2022.1.2

在我们的项目中,障碍是元素Pressable。将属性accessible={false}设置为它修复了Appium在模式窗口上查找元素的功能。<TouchableOpacity accessible={false}>还在屏幕上查找元素。
我必须***强调***Appium Inspector的屏幕截图视图仍然无法识别元素,但它的搜索功能(iOS的“id”)可以找到它们。

7d7tgy0s

7d7tgy0s3#

到目前为止,我的印象是,如果Appium Inspector没有呈现一个组件,那么就意味着它没有看到它,因此我将无法在测试中使用它。
事实证明,它的搜索引擎仍然可以找到这样的组件,因此我们可以在测试中使用它,尽管有时需要向某些组件添加额外的 prop ,如accessible={false}或向父组件添加testID

相关问题