private IEnumerable <IWebElement> FindMe()
        {
            WrappedDriver.WaitForAjax(_timeoutMs);
            _webElements = WebElementsCache.GetCachedElements(this.ToString());
            if (IsStale())
            {
                var stopwatch = Stopwatch.StartNew();
                if (_container != null)
                {
                    var root = _container.FindMe();
                    if (_frame != null)
                    {
                        Logger.Log($"Select frame {_frame}");
                        WrappedDriver.SwitchTo().Frame(_frame.FindMe());
                    }

                    if (FindHidden)
                    {
                        Logger.Log($"Find {this}");
                        _webElements = root.FindElements(_by);
                    }
                    else
                    {
                        Logger.Log($"Find visible {this}");
                        _webElements = root.FindVisibleElements(_by);
                    }
                }
                else
                {
                    if (_frame != null)
                    {
                        Logger.Log($"Select frame {_frame}");
                        WrappedDriver.SwitchTo().Frame(_frame.FindMe());
                    }

                    if (FindHidden)
                    {
                        Logger.Log($"Find {this}");
                        _webElements = WrappedDriver.FindElements(_by);
                    }
                    else
                    {
                        Logger.Log($"Find visible {this}");
                        _webElements = WrappedDriver.FindVisibleElements(_by);
                    }
                }
                foreach (var ele in _webElements)
                {
                    if (TestContext.CurrentContext.TestConfig.HighlightElements)
                    {
                        ele.Highlight(50, "red");
                    }
                }


                stopwatch.Stop();
                Logger.Log($"Found {_webElements.Count()} Elements {_by} after {stopwatch.ElapsedMilliseconds} ms");
            }

            _elements = new List <Element>();
            int i = 1;

            foreach (var webele in _webElements)
            {
                var elem = new Element(webele, by, i);
                elem.WrappedElement = webele;
                _elements.Add(elem);
                WebElementCache.SaveElementToCache(webele, this.ToString(), i);
                i++;
            }
            WebElementsCache.SaveElementsToCache(_webElements.ToList(), this.ToString());
            return(_webElements);
        }