尝试在颤振驱动程序中获取多个元素(QA 环境)

Deo*_*uza 6 testing qa dart flutter

我已经成功地使用 commonfinders 在 flutter 驱动程序中获取单个元素,但是当涉及可能具有相同类型的多个元素时,它总是会引发错误。我明白这是设计使然。如果有人可以提出一种获取多个元素并将它们存储在数组/列表中的方法,我将不胜感激,这样我就可以通过它们的索引访问它们。类似的功能是,在 selenium 中,它允许您对多个元素使用 findElements(...),而 findElement(...) 则允许您搜索单个元素。

tom*_*ozb 5

这是如何通过其类型获取第一个元素

find.descendant(
      of: find.byValueKey(parentWidgetKey),
      matching: find.byType('CheckBox'),
      firstMatchOnly: true,
);
Run Code Online (Sandbox Code Playgroud)

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


ili*_*ots 2

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

同时,正如票证所建议的,如果您可以为元素分配一个可预测的键(例如my-el-01,,,),那么您可以编写一个助手(),它将尝试查找根据该方案命名的所有元素,并作为列表my-el-02返回。:/my-el-03findMyEl(String prefix, int maxEls)