如何使用 detox 处理纯原生元素

Posted

技术标签:

【中文标题】如何使用 detox 处理纯原生元素【英文标题】:How to handle pure native elements using detox 【发布时间】:2020-04-30 00:43:14 【问题描述】:

我正在使用 detox,但我需要使用 detox 处理我的本机登录页面。

【问题讨论】:

您能否分享一些代码或提供有关您的要求的更多详细信息 我的应用是混合应用,每当应用启动时,我都需要与纯原生应用组件进行交互。 你在使用 react-native。您能否分享更多信息,例如您需要交互的应用程序组件 是的,在我们的应用程序中,很少有场景是原生的,其中很少有反应原生的。在应用程序启动时,我们会从本机屏幕着陆,我们将导航以响应本机屏幕。我需要从本机导航以响应本机屏幕。我们如何在 Detox 上做到这些? 如果您正在构建 react-native cli 应用程序,在加载启动画面(即本机屏幕)后,它将自动加载 react native 的组件之一 【参考方案1】:

Detox 支持原生元素。为了与它们交互,您需要为要与之交互的元素设置accessibilityIdentifier,然后普通的by.id() API 将按预期工作。

【讨论】:

你知道在原生 android 中设置什么来获取它在 RN 端的 by.id() 吗? 在 Android 上,作为 by.id() 的输入的 test-ID 被设置为视图的主标签:developer.android.com/reference/android/view/…。这有帮助吗? @d4vidi ,是的,谢谢,我是否需要在本机中这样设置:button.setTag("barak") 并在 by.id('barak') 中获取“barak” .因为我试过了,没用。 @Leo Natan 您能否在答案中添加带有 setTag 的本机 android 示例。户田亚知 ;) 是的,或者您提前在视图的 xml 中应用标签。使用 Android Studio 检查您的布局层次结构,以确保标签确实放置正确!以下是我们如何在 Detox 的自测应用程序中应用这两种方法的示例,该应用程序在某些情况下会在纯原生布局上运行测试:github.com/wix/Detox/blob/…、github.com/wix/Detox/blob/…

以上是关于如何使用 detox 处理纯原生元素的主要内容,如果未能解决你的问题,请参考以下文章

我可以使用 detox 测试框架来测试 react + react 原生应用吗?

我们可以在 Android 和 iOS 原生应用程序中使用 detox 工具吗? (不是反应本机)

如何在 react-native detox 中按祖先索引匹配元素

React Native Detox 模拟文件

在 Azure DevOps 上运行的 Detox(反应原生)问题

Detox:如何使用 detox 在通知中心点击 iOS 推送通知