【问题标题】: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-01my-el-02my-el-03),那么您可以编写一个帮助程序(findMyEl(String prefix, int maxEls))来尝试查找根据该方案命名的所有元素,并作为列表返回。 :/

      【讨论】:

        猜你喜欢
        • 2020-09-08
        • 2018-03-10
        • 2021-03-27
        • 1970-01-01
        • 2021-02-24
        • 2021-07-13
        • 2020-10-23
        • 2020-06-02
        • 1970-01-01
        相关资源
        最近更新 更多