无法在 detox 中的 android 日期选择器中选择 month_view 中的日期

Posted

技术标签:

【中文标题】无法在 detox 中的 android 日期选择器中选择 month_view 中的日期【英文标题】:Unable to select date in month_view in android date picker in detox 【发布时间】:2020-06-20 05:58:25 【问题描述】:

使用 detox 编写 ui 自动化测试。以下日期选择器视图正在用于 android。enter image description here

我可以通过选择“确定”按钮来选择当前日期,但我似乎无法在月视图中选择特定值。与 android 日历选择器交互的研究尚未取得任何成果,所以找人指出我正确的方向。

谢谢。

【问题讨论】:

我对这个问题进行了更多调查。正在使用的 DatePicker 组件是在 npmjs.com/package/@react-native-community/datetimepicker 找到的 react 本机社区日期时间选择器。阅读文档后,我看不到如何在 android 日期选择器视图中公开日期的值。因此,当我使用 Android Studio 布局检查器工具查看日历时,每天的值不会以文本形式显示。有没有人知道如何做到这一点? 嗨@TopLuddite,您设法解决了这个问题吗?如果是,您介意分享解决方案吗? 【参考方案1】:

@TopLuddite 我可以就两件事提出建议:

    第一步,尝试在日期选择器显示 (*) 时检查布局,使用 Android Studio 的 Layout Inspector 工具(在 Tools 菜单下)。在捕获的布局中,在methods > getTag() 中查找与您希望点击的视图相关联的值。这些等同于 Detox 所看到的测试 ID,这意味着如果该值不为 null,则适用于 Detox 的 by.id(<value>) 视图匹配 API。这是解决问题的一种直接方法。

    作为替代方案,请考虑使用 Android 的 UIAutomator (UIDevice) API,该 API 可通过使用 device.getUiDevice() 调用的 Detox 获得。特别是,UiDevice.pressDPadDown 之类的 API 可以派上用场,或者,作为最后的手段 - UiDevice.click(x, y)


(*) 注意:您必须在调试模式下运行应用程序才能正常工作。

【讨论】:

感谢@d4vidi 的建议。回复 1. 我使用了布局检查器,但不幸的是,当您在日期选择器视图中选择日期时,这些根本不注册布局检查器。 Re 2. - 我以前没听说过,我会调查的。我希望我不必求助于 UIDevice.click(x, y),因为这似乎可能会产生测试维护问题。 及时通知我们!

以上是关于无法在 detox 中的 android 日期选择器中选择 month_view 中的日期的主要内容,如果未能解决你的问题,请参考以下文章

使用 Detox 在 Android 上设置相机权限

在使用 Detox 运行测试期间,Android 模拟器无法启动应用程序

Bitrise 上的 Detox 无法在 Android 上运行 - React Native

Android Detox 的权限

是否可以使用 Detox 或 Jest 获得匹配元素的数量?

Detox 找不到已指定 testId 的自定义组件