在 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_key 和 cannot_see_this_testID 但只看到第一个。
【问题讨论】:
【参考方案1】:我相信您所看到的行为是由于 React Native 将嵌套的 <Text>
元素折叠到呈现所有文本的单个视图中。由于只有一个视图,因此只能使用*** testID。
React Native 可以使用单个视图呈现具有不同样式的文本,因为它在内部使用支持单个文本对象的不同样式的 OS API 来绘制文本。
【讨论】:
以上是关于在 iOS 设备的 appium 中无法从 react-native 中找到内部 <Text> 标记/组件的 testID的主要内容,如果未能解决你的问题,请参考以下文章
无法在真实设备上使用 Appium 在 iOS hyprid 应用程序自动化中识别 WEBVIEW 中的元素
如何从 Appium 打开推送通知并阅读 Android/iOS 设备中的文本?
如何列出可以添加到 C# Appium 框架中的设备和 ios 以使其每次测试都使用不同的 Ios 设备和 Ios OS