试图在flutter驱动程序中获取多个元素(QA环境)

时间:2018-03-21 05:39:03

标签: testing dart flutter qa

我已经成功地使用共同探测器来获得flutter驱动程序中的单个元素,但是当涉及到可能具有相同类型的多个元素时,它总是会引发错误。我明白这是设计的。如果有人可以建议一种方法来获取多个元素并将它们存储在数组/列表中,我将不胜感激,因此我可以通过它们的索引访问它们。在selenium中,类似的功能可以让你使用findElements(...)代替多个元素,而findElement(...)可以让你搜索单个元素。

2 个答案:

答案 0 :(得分:4)

这是如何通过其类型先获取元素

find.descendant(
      of: find.byValueKey(parentWidgetKey),
      matching: find.byType('CheckBox'),
      firstMatchOnly: true,
);

如果您有多个复选框,只需为其父级分配一个键,按键获取父级,按类型获取复选框,并将firstMatchOnly标志设置为true

答案 1 :(得分:1)

与flutter_test提供的查找器相比,flutter_driver中的查找器目前非常有限。这是一个已知的问题,可能有一天会被解决:见https://github.com/flutter/flutter/issues/12810

与此同时,正如故障单所示,如果您可以为元素分配可预测的密钥(例如my-el-01my-el-02my-el-03),那么您可以编写帮助程序({ {1}})将尝试查找按该方案命名的所有元素,并作为列表返回。 :/