如何使用Flutter驱动程序从DropdownButton中选择一个值?

时间:2019-07-09 11:02:40

标签: flutter dart flutter-test

我想从表单的DropdownButton中选择一个条目。我设法使用以下方法点击了按钮:

await driver.tap(find.byValueKey('object_type'));

我现在如何找到条目?使用数据库中的值动态生成DropdownMenuItem条目。我认为为每个值设置一个键很尴尬,所以我尝试了以下操作:

await driver.tap(find.byValueKey('object_type'));
await driver.waitFor(find.text('Car'));
await driver.tap(find.text('Car'));

但是,这在我超时时不起作用。

1 个答案:

答案 0 :(得分:0)

我也遇到了同样的问题,但是我可以使用下面的代码解决问题

       final drop = find.byValueKey('object_type');
       // First, tap the dropdown button.
       await driver.tap(drop);
       await driver.tap(find.text('Car'));
       expect(await driver.getText(find.text('Car')), isNotNull);

假设下拉列表中有大量数据,那么我们需要向下滚动下拉列表并搜索期望值。

       final SerializableFinder dropFinder = find.byValueKey('object_type');    
       await driver.scroll(dropFinder , 0, -200, Duration(milliseconds: 3000));
       await driver.tap(find.text('Car'));
       expect(await driver.getText(find.text('Car')), isNotNull);