【问题标题】:Trying to get multiple elements in flutter driver(QA environment)尝试在颤振驱动程序中获取多个元素(QA 环境)
【发布时间】:2018-03-21 05:39:03
【问题描述】:
我已经成功地使用 commonfinders 在颤振驱动程序中获取单个元素,但是当涉及可能具有相同类型的多个元素时,它总是会引发错误。我明白这是设计使然。如果有人能提出一种获取多个元素并将它们存储在数组/列表中的方法,我将不胜感激,这样我就可以通过它们的索引访问它们。类似的功能是,在 selenium 中,它允许您使用 findElements(...) 来处理多个元素,而 findElement(...) 则允许您搜索单个元素。
【问题讨论】:
标签:
testing
dart
flutter
qa
【解决方案1】:
这是按类型获取第一个元素的方法
find.descendant(
of: find.byValueKey(parentWidgetKey),
matching: find.byType('CheckBox'),
firstMatchOnly: true,
);
如果您有多个复选框,只需为其父级分配一个键,通过键获取父级,按类型获取复选框并将firstMatchOnly标志设置为true
【解决方案2】:
flutter_driver 中的finder 目前相当有限,与flutter_test 提供的finder 相比。这是一个已知问题,可能有一天会得到解决:请参阅https://github.com/flutter/flutter/issues/12810
与此同时,正如票证所示,如果您可以为您的元素分配一个可预测的键(例如my-el-01、my-el-02、my-el-03),那么您可以编写一个帮助程序(findMyEl(String prefix, int maxEls))来尝试查找根据该方案命名的所有元素,并作为列表返回。 :/