问题标签 [flutterdriver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3150 浏览

testing - 使用颤振驱动程序中的系统后退按钮

如何在集成测试中使用系统后退按钮?

所以我正在使用颤振并正在编写集成测试,在大多数情况下我可以使用 AppBar 导航,通过工具提示找到它看起来像这样:

但是我的一个测试打开了一个网页,打开后我需要继续我的测试,这意味着我需要按下系统后退按钮,这可能吗?

非常感谢

0 投票
2 回答
536 浏览

flutter - FlutterDriver - 如何关闭 showDialog

我正在使用 FlutterDriver,我定义了一个 IconButton 和一个键集,如图所示:

对话框成功显示,代码如下:

我不知道如何关闭对话框。我试过了:

  • 点击与上图相同的值
  • 在 Scaffold 中添加钥匙,找到钥匙并点击
  • 在层次结构中的其他 UI 元素中添加键,查找和点击

我收到的错误信息是:

FlutterDriver:点击消息需要很长时间才能完成......

0 投票
1 回答
997 浏览

flutter-alertdialog - Flutter Driver - 不定位 Flutter AlertDialog 及其元素

我的颤振应用程序AlertDiaog中出现了颤振。使用Flutter Driver时,我无法点击 Flutter AlertDialog 或 AlertDialog 上的任何元素。有没有办法点击我的应用程序上出现的任何 AlertDialog?

我已经尝试了以下所有方法,但仍然没有运气:

  1. 第一的:
  1. 第二
  1. 第三
0 投票
1 回答
385 浏览

testing - 第一次编译flutter_driver时出错

在尝试向我的应用程序添加集成测试时,我遵循了以下步骤:

  • 在项目根目录创建一个文件夹“test_driver”
  • 在包含 (1) 的文件夹中创建文件 app.dart
  • 以及一个文件“app_test.dart”(2)

(1)

(2)

我自愿根本没有实施任何测试并使用 Text 小部件,但我得到了这个错误:

我的 pubspec 看起来像这样:

我将非常感谢任何形式的帮助:D

解决方案:就像@Darshan 所说,我们只需要切换到包含修复的飞镖版本。以下几行帮助我解决了这个问题:

0 投票
1 回答
295 浏览

flutter-test - Flutter 试驾和长时间运行的流程

我正在使用颤振试驾来测试我的颤振应用程序。

一切正常,除了在我等待一个元素很长时间之后。

例如我有一个登录过程,这需要很长时间(如果测试服务器很忙,最多需要 60 秒)。所以我按下登录按钮并等待主页出现:

如果我这样做,我会得到:Bad state: The client closed with pending request "ext.flutter.driver".在我尝试执行的下一个命令上。

如果我模拟登录过程使其只需要几分之一秒,我不会收到此错误。

我如何告诉颤振驱动器对超时更有耐心?

0 投票
1 回答
1467 浏览

command-line-arguments - Flutter Driver - 我们可以将命令行参数传递给 Flutter 驱动程序测试吗

我想将测试环境作为命令行参数传递给我的颤振驱动程序集成测试。可能吗 ?

我确实在下面的文章中读到我们可以在颤振驱动程序测试中使用环境变量。但我对命令行参数更感兴趣。

如何将环境变量传递给颤振驱动程序测试

0 投票
1 回答
169 浏览

flutter - 如何使用颤振驱动器找到关闭按钮

我正在使用颤振驱动器测试颤振 Cupertino 风格的应用程序。

我无法关闭全屏页面,因为我找不到关闭按钮。

find.by???在库比蒂诺风格的应用程序中点击关闭按钮的正确指令是什么?

0 投票
0 回答
128 浏览

flutter - 如何将配置值传递给在 Flutter 集成测试中启动的应用程序?

当您运行 Flutter 集成测试时,框架会启动您的应用程序。我想将一些配置值(例如后端 API URL)传递给应用程序以在启动时使用。没有一组固定的配置值,例如,版本控制中每个分支的后端 URL 不同,我们针对每个分支运行测试。

我查看了 Flutter 的风格,但只有当你有固定数量的变化时,这似乎是一个很好的解决方案。同样,我无法app.dart为每个可能的配置创建一个文件。

我还研究了是否可以使用DataHandler参数来enableFlutterDriverExtension传递测试代码中的值(然后测试代码本身可以从环境变量中读取它们),但我真的很想在应用程序首次启动时使用这些配置值来构建应用程序。

在 Flutter 中有没有更直接的方法来做到这一点?

0 投票
1 回答
2917 浏览

flutter - Flutter 驱动程序 - 在屏幕外的字段中输入文本

我正在尝试为具有多个 TextFormFields 的屏幕编写集成测试。对于每个测试,我只是:

  1. 点击文本字段
  2. 输入一些文字
  3. 检查文本字段中是否存在文本。

使用 Flutter 驱动程序,以下内容适用于每个 TextFormField:

但是,对于屏幕外的任何 TextFormFields(即不可见/在视口之外),测试会因超时错误而失败。

我尝试添加scrollIntoView()测试以告诉 Flutter Driver 滚动,直到该字段位于视口中。下面是一个例子:

但是,测试继续失败并出现超时错误:

如何测试视口之外的 TextFormFields?


更新:我发现 usingscrollUntilVisible()优于scrollIntoView(),因为该元素可能尚未呈现,因此无法找到(请参阅https://flutter.dev/docs/cookbook/testing/integration/scrolling)。

scrollUntilVisible()成功自动滚动屏幕并找到屏幕外的元素。但是,一旦找到,屏幕会出于某种原因自动跳回顶部,使元素再次脱离屏幕。这是怎么回事?

0 投票
1 回答
4361 浏览

android - Flutter Driver 测试超时

我是 Flutter Driver 测试的新手,我遇到一个问题,即在等待小部件出现时测试总是超时(30 秒内)。我的主要课程只是检查 Firebase 用户是否不为空。如果用户已登录,则显示仪表板,否则显示登录屏幕。运行检查时,它显示一个 SplashScreen。测试“检查颤振驱动程序健康”正常完成。

我试过find.byValueKey("auth_screen")而不是find.byType("AuthScreen"),它给出了同样的问题。

错误日志:

这是我的测试代码:

主类中的一段 futureBuilder 代码:

和 AuthScreen() 一段代码: