使用 flutter_driver 查找颤振三明治菜单按钮
Posted
技术标签:
【中文标题】使用 flutter_driver 查找颤振三明治菜单按钮【英文标题】:Find flutter sandwich menu button using flutter_driver 【发布时间】:2020-09-16 05:01:30 【问题描述】:使用flutter_driver查找flutter三明治菜单按钮
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);
button to be identified
test('test by inserting valid username and login', () async
await driver.tap(buttonFinder);
expect(await driver.getText(loginName), "LoginName");
);
【问题讨论】:
【参考方案1】:不是 100% 安全但允许您不使用工具提示的解决方案是:
test('OpenDrawer', () async
await driver.tap(find.descendant(
of: find.byType('AppBar'),
matching: find.byType('IconButton'),
firstMatchOnly: true,
));
);
【讨论】:
【参考方案2】:您所指的三明治菜单称为Drawer
,您可以使用它的toolTip
属性点击它。
如果你长按抽屉菜单,它会显示一个工具提示,如下:
然后,在你的flutter驱动测试中,你可以通过使用byToolTip
方法声明一个finder来识别这个widget,如下:
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');
);
【讨论】:
以上是关于使用 flutter_driver 查找颤振三明治菜单按钮的主要内容,如果未能解决你的问题,请参考以下文章
所以,因为poseapp依赖于sdk中的音频播放器^0.17.0和flutter_driver any,版本解析失败
Flutter应用程序在使用flutter_driver运行时无法加载Json文件
Flutter:flutter_driver 错误消息和应用程序屏幕在测试时保持黑色
因为sdk的flutter_driver每个版本都依赖crypto 2.1.5,Cruise依赖crypto 3.0.0,所以sdk的flutter_driver是被禁止的