3

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

Center(
  child: IconButton(
    key: Key('moredots'),
    icon: Icon(Icons.more_vert),
    onPressed: () {
      showDialog(
        context: context,
        builder: (_) => tableConfig,        
      );
    },
  ),
)

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

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

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

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

我收到的错误信息是:

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

4

2 回答 2

2

我发现 showDialog() 提供了一个 ModalBarrier 以在显示对话框时停止用户输入。

关闭 showDialog 的技巧是通过传入 ModalBarrier 的类型来查找,如下所示:

await driver.tap(find.byType('ModalBarrier'));
于 2019-11-06T03:42:08.333 回答
0

添加

Navigator.of(context).pop(false);

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

于 2019-11-05T18:03:38.903 回答