我已经成功地使用共同探测器来获得flutter驱动程序中的单个元素,但是当涉及到可能具有相同类型的多个元素时,它总是会引发错误。我明白这是设计的。如果有人可以建议一种方法来获取多个元素并将它们存储在数组/列表中,我将不胜感激,因此我可以通过它们的索引访问它们。在selenium中,类似的功能可以让你使用findElements(...)代替多个元素,而findElement(...)可以让你搜索单个元素。
答案 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-01
,my-el-02
,my-el-03
),那么您可以编写帮助程序({ {1}})将尝试查找按该方案命名的所有元素,并作为列表返回。 :/