我有一个屏幕(比如屏幕B),它使用动画一秒钟,然后显示UI元素。动画结束后,我需要得到一个按钮,并按它。
这个屏幕是在特定屏幕(例如屏幕A)之后出现的。我已经成功地编写了集成测试(使用integration_test),现在出现了这个屏幕。现在是这样的情况-
< code >G 212
更多信息:
所以有一个屏幕(比如应用程序的主屏幕),我在上面显示“进度指示符”,直到我有可用的数据为止。
现在有一个屏幕被推到主屏幕的顶部(某种欢迎屏幕)上,用于一个新的应用程序安装。
在该屏幕欢迎屏幕,我有一个视图,我动画离开后,一秒,并显示欢迎项目与跳过按钮。
所以
[1] expect(welcomeScreen, findsOneWidget);
[2] await Future.delayed(Duration(seconds: 1));
[3] await tester.pumpAndSettle();上面的代码行很好,但是如果我这样做了,
[2Alt] await tester.pumpAndSettle(Duration(seconds: 1))这是无限期的。
进一步
有一个在1秒后出现的跳过按钮(在welcom屏幕上),我点击跳过按钮,它弹出欢迎屏幕,然后回到主屏幕,在那里“进度指示符”正在旋转,直到收到数据。
expect(skipButton, findsOneWidget);
await tester.tap(skipButton);
await tester.pumpAndSettle();在这里,pumpAndSettle占用无限的时间(直到超时)
我不知道原因是什么。pumpAndSettle到底在做什么。如果我只抽水泵,它就能用
发布于 2022-09-08 12:38:45
试试这个泵直到你想要的东西出现..。
do await tester.pump(); while (
tester.widgetList(find.byType(WhatYouNeedWidget)).isEmpty);https://stackoverflow.com/questions/65917181
复制相似问题