【发布时间】:2019-07-09 11:02:40
【问题描述】:
我想从表单中的 DropdownButton 中选择一个条目。我设法使用以下方法点击了按钮:
await driver.tap(find.byValueKey('object_type'));
我现在怎样才能找到一个条目? DropdownMenuItem 条目是使用数据库中的值动态生成的。我认为为每个值设置一个键有点尴尬,所以我尝试了以下方法:
await driver.tap(find.byValueKey('object_type'));
await driver.waitFor(find.text('Car'));
await driver.tap(find.text('Car'));
但是,这不起作用,因为我遇到了超时。
【问题讨论】:
-
什么时候超时?在
waitFor或tap上?单击下拉菜单时,您是否看到其中的所有值? -
@DK15:菜单已打开,我可以看到所有值。超时发生在水龙头上。我也尝试使用密钥,但我收到相同的消息:[警告] FlutterDriver:点击消息需要很长时间才能完成...
-
我明白了。我对下拉选择进行了测试,它可以工作。我所做的是->点击显示所有值的下拉列表中显示的当前文本->等待驱动程序找到要选择的值->点击要选择的值,这就是您正在做的。在尝试点击
Car之前,您可以尝试使用getText吗?喜欢expect (driver.getText(find.text('Car')), isNotNull); -
@DK15:当我注意到超时消息实际上不是来自对值的点击,而是来自对 DropdownButton 本身的点击时,我只是想尝试一下!奇怪的是,菜单中的所有值都是可见的。
-
你能分享
dropdownbutton是如何实现的完整代码以及有助于复制问题的相关代码吗?
标签: flutter dart flutter-test