Exemplo n.º 1
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);
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        private dynamic CastCell(ComponentRepository repo, ControlColumnData controlData, TableCell tableCell)
        {
            var element = repo.CreateComponentWithParent(controlData.By, tableCell.WrappedElement, controlData.ComponentType, false);

            // Resolve the appropriate Readonly Control Data Handler
            dynamic controlDataHandler = ControlDataHandlerResolver.ResolveReadonlyDataHandler(element.GetType());

            if (controlDataHandler == null)
            {
                throw new Exception($"Cannot find proper IReadonlyControlDataHandler for type: {element.GetType().Name}. Make sure it is registered in the ServiceContainer");
            }

            dynamic elementValue = controlDataHandler.GetData(element);

            return(elementValue);
        }
Exemplo n.º 3
0
        public IEnumerable <TComponent> GetCells <TComponent>()
            where TComponent : Component, new()
        {
            var listOfElements = new List <TComponent>();
            var cells          = GetCells().ToList();

            for (int columnIndex = 0; columnIndex < cells.Count; columnIndex++)
            {
                var        cell    = cells[columnIndex];
                TComponent element = new TComponent();
                if (cell.CellControlComponentType == null)
                {
                    listOfElements.Add(cell.As <TComponent>());
                }
                else
                {
                    var repo = new ComponentRepository();
                    element = repo.CreateComponentWithParent(cell.CellControlBy, cell.WrappedElement, typeof(TComponent), false);
                    listOfElements.Add(element);
                }
            }

            return(listOfElements);
        }