public TComponent Create <TComponent, TBy>(TBy by) where TBy : FindStrategy where TComponent : Component { var elementRepository = new ComponentsRepository(); return(elementRepository.CreateComponentThatIsFound <TComponent>(by, null)); }
private IEnumerable <TComponent> GetAndWaitWebDriverElements() { if (_shouldCacheFoundElements && _cachedElements == null) { _cachedElements = GetAndWaitNativeElements().ToList(); } if (_shouldCacheFoundElements && _cachedElements != null) { foreach (var element in _cachedElements) { yield return(element); } } else { foreach (var element in GetAndWaitNativeElements()) { yield return(element); } } IEnumerable <TComponent> GetAndWaitNativeElements() { foreach (var foundElement in _foundElements) { yield return(foundElement); } if (_parenTComponent != null) { var elementRepository = new ComponentsRepository(); foreach (var nativeElement in _by?.FindAllElements(_parenTComponent)) { var element = elementRepository.CreateComponentThatIsFound <TComponent>(_by, (WindowsElement)nativeElement); yield return(element); } } else { var elementRepository = new ComponentsRepository(); foreach (var nativeElement in _by?.FindAllElements(WrappedDriver)) { var element = elementRepository.CreateComponentThatIsFound <TComponent>(_by, nativeElement); yield return(element); } } } }