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); }
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); }