public TElement Create <TElement, TBy>(TBy by, bool shouldCacheElement) where TBy : FindStrategy where TElement : Element { var elementRepository = new ElementRepository(); return(elementRepository.CreateElementThatIsFound <TElement>(by, null, shouldCacheElement)); }
private IEnumerable <TElement> 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 <TElement> 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 ElementRepository(); if (_parentElement != null) { var element = elementRepository.CreateElementWithParent <TElement>(_by, _parentElement, nativeElement, index++, _shouldCacheFoundElements); yield return(element); } else { var element = elementRepository.CreateElementThatIsFound <TElement>(_by, nativeElement, _shouldCacheFoundElements); yield return(element); } } } } }
private IEnumerable <IWebElement> WaitWebDriverElements() { var elementFinder = _parentElement == null ? new NativeElementFinderService(WrappedDriver) : new NativeElementFinderService(_parentElement); var elementWaiter = new ElementWaitService(); if (_parentElement == null) { return(ConditionalWait(elementFinder)); } else { var elementRepository = new ElementRepository(); var parentElement = elementRepository.CreateElementThatIsFound <Element>(_by, _parentElement, true); return(ConditionalWait(elementFinder)); } }