FlutterDriver-如何关闭showDialog

问题描述 投票:0回答:2

我正在使用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'));

我不知道如何关闭对话框。我已经尝试过:

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

我收到的错误消息是:

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

flutter dismiss showdialog flutterdriver
2个回答
1
投票

添加

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

之后

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


0
投票

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

关闭showDialog的窍门是按类型查找传入ModalBarrier,如下所示:

await driver.tap(find.byType('ModalBarrier'));
© www.soinside.com 2019 - 2024. All rights reserved.