public TComponent Create <TComponent, TBy>(TBy by, bool shouldCacheElement) where TBy : FindStrategy where TComponent : Component { var elementRepository = new ComponentRepository(); return(elementRepository.CreateComponentThatIsFound <TComponent>(by, null, shouldCacheElement)); }
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 (_by != null) { var nativeElements = WaitWebDriverElements(); int index = 0; foreach (var nativeElement in nativeElements) { var elementRepository = new ComponentRepository(); if (_parenTComponent != null) { var element = elementRepository.CreateComponentWithParent <TComponent>(_by, _parenTComponent, nativeElement, index++, _shouldCacheFoundElements); yield return(element); } else { var element = elementRepository.CreateComponentThatIsFound <TComponent>(_by, nativeElement, _shouldCacheFoundElements); yield return(element); } } } } }
private IEnumerable <IWebElement> WaitWebDriverElements() { var elementFinder = _parenTComponent == null ? new NativeElementFinderService(WrappedDriver) : new NativeElementFinderService(_parenTComponent); var elementWaiter = new ComponentWaitService(); if (_parenTComponent == null) { return(ConditionalWait(elementFinder)); } else { var elementRepository = new ComponentRepository(); var parenTComponent = elementRepository.CreateComponentThatIsFound <Component>(_by, _parenTComponent, true); return(ConditionalWait(elementFinder)); } }