-2

使用 flutter_driver 查找颤振三明治菜单按钮


    Scaffold(
        key: widget.scaffoldKey,
        drawer: Observer(builder: (BuildContext context) {
          return DrawerMenu(
            user: controller.appStore.user,
            onTapLogout: controller.loginController.logout,
          );
        }),
        appBar: widget.appBar,
        body: widget.body);

待识别按钮


 test('test by inserting valid username and login', () async {
      await driver.tap(buttonFinder);

      expect(await driver.getText(loginName), "LoginName");
    });
4

2 回答 2

2

一个不是 100% 安全但允许您不使用工具提示的解决方案是:

test('OpenDrawer', () async {
      await driver.tap(find.descendant(
        of: find.byType('AppBar'),
        matching: find.byType('IconButton'),
        firstMatchOnly: true,
      ));
    });
于 2020-10-14T08:07:20.487 回答
0

您所指的三明治菜单称为Drawer,您可以使用它的toolTip属性点击它。如果你长按抽屉菜单,它会显示一个工具提示,如下所示:

在此处输入图像描述

然后,在你的flutter驱动测试中,你可以通过使用方法声明一个finder来识别这个小部件byToolTip,如下所示:

final drawerFinder = find.byTooltip('Open navigation menu');

然后把你的测试写成:

test('tap on drawer menu', () async {
        await driver.waitFor(drawerFinder);
        await driver.tap(drawerFinder);
        print('clicked on drawer');
      });
于 2020-05-29T05:16:33.513 回答