在 iOS 设备的 appium 中无法从 react-native 中找到内部 <Text> 标记/组件的 testID

Posted

技术标签:

【中文标题】在 iOS 设备的 appium 中无法从 react-native 中找到内部 <Text> 标记/组件的 testID【英文标题】:Cannot find testID of inner <Text> tag/component from react-native in appium with iOS device 【发布时间】:2021-11-07 09:28:52 【问题描述】:

我正在使用 Appium + Java for ios 为 React Native 编写测试。但是我有一个问题,appium 检查器找不到 react-native 的 testID。 这是我的 react-native 演示代码:

const App: () => Node = () => 
  return (
    <SafeAreaView
      testID="SafeAreaView"
      accessible=false
    >
      <ScrollView
        testID="scroll_view"
        accessible=false
      >
        <Text style=styles.baseText testID="can_see_testID_as_key">
          This is a
          <Text style=styles.innerText testID="cannot_see_this_testID"> iOS test</Text>
        </Text>
      </ScrollView>
    </SafeAreaView>
  );
;

const styles = StyleSheet.create(
  baseText: 
    fontWeight: 'bold'
  ,
  innerText: 
    color: 'red'
  
);


我希望在 appium 检查器中同时看到 can_see_testID_as_keycannot_see_this_testID 但只看到第一个。

【问题讨论】:

【参考方案1】:

我相信您所看到的行为是由于 React Native 将嵌套的 &lt;Text&gt; 元素折叠到呈现所有文本的单个视图中。由于只有一个视图,因此只能使用*** testID。 React Native 可以使用单个视图呈现具有不同样式的文本,因为它在内部使用支持单个文本对象的不同样式的 OS API 来绘制文本。

【讨论】:

以上是关于在 iOS 设备的 appium 中无法从 react-native 中找到内部 <Text> 标记/组件的 testID的主要内容,如果未能解决你的问题,请参考以下文章

无法在真实设备上使用 Appium 在 iOS hyprid 应用程序自动化中识别 WEBVIEW 中的元素

如何从 Appium 打开推送通知并阅读 Android/iOS 设备中的文本?

如何列出可以添加到 C# Appium 框架中的设备和 ios 以使其每次测试都使用不同的 Ios 设备和 Ios OS

iOS真机运行Appium遇到的问题

将真实 iOS 设备与 Appium 服务器连接时出错

无法在 iOS Appium 测试(AWS Device Farm)上切换到 WebView 上下文