findElementsFor method

Future<List<Element>> findElementsFor(
  1. dynamic selector, {
  2. required bool shouldScroll,
  3. required bool ignoreUnderWidget,
})

Implementation

Future<List<Element>> findElementsFor(dynamic selector, { required bool shouldScroll, required bool ignoreUnderWidget }) async {
  if(slowOnScreenMillis > 0 && !AFibD.config.isWidgetTesterContext) {
    await Future<void>.delayed(Duration(milliseconds: slowOnScreenMillis));
  }
  final activeSel = ignoreUnderWidget ? null : activeSelectorPath;
  final sel = AFWidgetSelector.createSelector(activeSel, selector);
  final info = AFibF.g.internalOnlyFindScreen(activeScreenId);

  final currentPath = <Element>[];
  final elem = info?.element as Element;
  _populateChildrenDirect(elem, currentPath, sel, null, underScaffold: false, collectScrollable: true);
  while(sel.elements.isEmpty && shouldScroll && sel.canScrollMore()) {
    await sel.scrollMore();
    _populateChildrenDirect(elem, currentPath, sel, null, underScaffold: false, collectScrollable: false);
  }

  return sel.elements;
}