예제 #1
0
        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));
        }
예제 #2
0
        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);
                        }
                    }
                }
            }
        }
예제 #3
0
        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));
            }
        }