【发布时间】:2019-06-27 14:50:35
【问题描述】:
如何获取小部件计数
final SerializableFinder finder = find.byType('MyWidget');
await driver.tap(finder);
但 MyWidget 可能不止一个,
会抛出异常
【问题讨论】:
-
你发现了吗?
标签: flutter integration-testing
如何获取小部件计数
final SerializableFinder finder = find.byType('MyWidget');
await driver.tap(finder);
但 MyWidget 可能不止一个,
会抛出异常
【问题讨论】:
标签: flutter integration-testing
您需要使用一些属性来找到所需的小部件。例如,为每个小部件添加一个Key,以便更轻松地找到您需要的小部件:
...MyWidget(key: Key('myWidget1'))...
那么,通过key找到它:
find.byKey(Key('myWidget1'))
如果你想找到小部件的数量,你可以使用这个:
final finder = find.byType(MyWidget, skipOffstage: false); // Without quotes!
final count = tester.widgetList<MyWidget>(finder).length;
【讨论】:
如果您想找到一个或多个与您匹配的小部件,请使用findsWidgets:
final SerializableFinder finder = find.byType('MyWidget');
expect(finder, findsWidgets);
如果您正在寻找确切数量的小部件,您可以使用findsNWidgets()(假设为 4)计算小部件树中有多少匹配节点:
final SerializableFinder finder = find.byType('MyWidget');
expect(finder, findsNWidgets(4));
【讨论】:
if(find.byType(Text).length) 或类似的东西......