如何与来自 Flutter integration_test 的原生 UI 元素进行交互?

Posted

技术标签:

【中文标题】如何与来自 Flutter integration_test 的原生 UI 元素进行交互?【英文标题】:How to interact with native UI elements from flutter integration_test? 【发布时间】:2021-08-26 16:55:47 【问题描述】:

我正在尝试对 Flutter 应用中的用户流进行自动化测试。为此,我使用了颤振集成测试包 (https://flutter.dev/docs/testing/integration-tests)。我已经使用 integration_test 包编写了测试。尽管这些测试在物理设备上运行,但在某些情况下我必须与本机 UI 元素交互(例如,单击权限按钮以授予相机权限等)但是,我无法与本机 UI 交互具体元素:

1.在系统权限对话框中点击允许 2.打开相机时点击拍摄按钮 3.从图库中选择图片

我想了解如何通过脚本实现上述情况并因此实现自动化。此外,可以将 appium-flutter-driver 或 flutter-driver 等框架与 flutter_integration 结合使用来实现此目的。任何指针都会有所帮助。

【问题讨论】:

【参考方案1】:

长话短说,目前可能不可能。

这两个 GitHub 问题几乎是我们关心的问题:

Add support to test native permission dialog (#87440) Allow driving native UI interactions from Dart (#86295)

但是,到目前为止,关于此事的每一条评论都在说明这件事有多困难。 android 方面唯一的“解决方案”是使用 Android ADB,但在那时,它甚至不再是 integration_test

【讨论】:

以上是关于如何与来自 Flutter integration_test 的原生 UI 元素进行交互?的主要内容,如果未能解决你的问题,请参考以下文章

如何将参数传递给flutter integration_test?

如何解决“在 Flutter SDK 中找不到包 integration_test”错误

在 Flutter 中,如何使用 CachedNetworkImage 显示来自 Firebase 的离线图像?

Flutter:如何将 StreamBuilder 与 ListView.separated 一起使用

Flutter:如何显示来自 Firebase 的文本?

Flutter:如何优先显示来自 Asset 的图像,如果找不到,则显示来自 URL 的图像?