使用颤振驱动程序中的系统后退按钮
Posted
技术标签:
【中文标题】使用颤振驱动程序中的系统后退按钮【英文标题】:using the system back button from flutter driver 【发布时间】:2019-07-23 16:06:49 【问题描述】:如何在集成测试中使用系统后退按钮?
所以我正在使用flutter并正在编写集成测试,在大多数情况下我可以使用AppBar导航,通过工具提示找到它看起来像这样:
driver.tap(find.byTooltip('Back'));
但是我的一个测试打开了一个网页,打开后我需要继续我的测试,这意味着我需要按下系统返回按钮,这可能吗?
非常感谢
【问题讨论】:
【参考方案1】:如果您的机器上安装了adb
,您可以运行命令以使用按键事件执行回压:
import 'dart:io';
await Process.run(
'adb',
<String>['shell', 'input', 'keyevent', 'KEYCODE_BACK'],
runInShell: true,
);
【讨论】:
iPhone 怎么样?我们如何以编程方式按下主页按钮等。 iPhone 的主页按钮不是后退按钮,它会将用户引导至设备主页。如果您想在 ios 上测试等效的 backpress,您可能需要尝试从右向左拖动。 有没有办法以编程方式在 iPhone 上按下主屏幕?【参考方案2】:也许这对你有帮助
await device.shellExec('input', <String>['keyevent', 'KEYCODE_BACK']);
在官方的 Flutter 驱动测试之一中发现 link
【讨论】:
似乎 device.shellExec 依赖于仅在框架内可用的flutter_devicelab【参考方案3】:查看this 链接。简而言之,您需要使用 WillPopScope
类来处理带有回调的设备后退按钮。
【讨论】:
不适用于颤振驱动程序,我知道 willPopScope 及其用法,但谢谢以上是关于使用颤振驱动程序中的系统后退按钮的主要内容,如果未能解决你的问题,请参考以下文章