Пример #1
0
        private static IEnumerable <GeckoElement> FindMatchingSpans(ConfigurableDictionaryNode selectedNode, GeckoElement parent,
                                                                    ConfigurableDictionaryNode topLevelNode, FdoCache cache)
        {
            var elements     = new List <GeckoElement>();
            var desiredClass = CssGenerator.GetClassAttributeForConfig(selectedNode);

            if (ConfiguredXHTMLGenerator.IsCollectionNode(selectedNode, cache))
            {
                desiredClass = CssGenerator.GetClassAttributeForCollectionItem(selectedNode);
            }
            foreach (var span in parent.GetElementsByTagName("span"))
            {
                if (span.GetAttribute("class") != null && span.GetAttribute("class").Split(' ')[0] == desiredClass &&
                    DoesGeckoElementOriginateFromConfigNode(selectedNode, span, topLevelNode))
                {
                    elements.Add(span);
                }
            }
            return(elements);
        }
Пример #2
0
        private static List <GeckoElement> FindConfiguredItem(ConfigurableDictionaryNode selectedConfigNode, GeckoWebBrowser browser, FdoCache cache)
        {
            var elements = new List <GeckoElement>();
            var body     = browser.Document.Body;

            if (body == null || selectedConfigNode == null)             // Sanity check
            {
                return(elements);
            }

            var topLevelConfigNode = GetTopLevelNode(selectedConfigNode);
            var topLevelClass      = CssGenerator.GetClassAttributeForConfig(topLevelConfigNode);

            foreach (var div in body.GetElementsByTagName("div"))
            {
                if (Equals(div.ParentElement, body) && div.GetAttribute("class") == topLevelClass)
                {
                    elements.AddRange(FindMatchingSpans(selectedConfigNode, div, topLevelConfigNode, cache));
                }
            }
            return(elements);
        }