public string CreateJavaScriptFireEventCode(NameValueCollection eventObjectProperties, string eventName) { var scriptCode = new StringBuilder(); scriptCode.Append("var newEvt = document.createEventObject();"); CreateJavaScriptEventObject(scriptCode, eventObjectProperties); var reference = _ieElement.GetJavaScriptElementReference(); scriptCode.Append(string.Format("{0}.fireEvent('{1}', newEvt);", reference, eventName)); return(scriptCode.ToString()); }
public IEnumerable <INativeElement> GetElementsWithQuerySelector(ICssSelector selector, DomContainer domContainer) { var container = "document"; if (_element != null) { var elementTag = new ElementTag(_element.TagName); if (elementTag.Equals(new ElementTag("frame")) || elementTag.Equals(new ElementTag("iframe"))) { var frameHierarchy = _element.GetAttributeValue("data-watinFrameHierarchy"); container = frameHierarchy + ".document"; } else { var document = _element.AsHtmlElement.document; var result = new Expando(document).GetValue <string>("___WATINFRAMEHIERARCHY"); container = ""; if (result != null) { container = result; } if (!string.IsNullOrEmpty(container)) { container += "."; } container += _element.GetJavaScriptElementReference(); } } else { //container = CreateArray(); } domContainer.RunScript(new ScriptLoader().GetSizzleInstallScript()); var code = string.Format("document.___WATINRESULT = Sizzle('{0}', {1});", selector.Selector(true), container); domContainer.RunScript(code); return(new JScriptElementArrayEnumerator((IEDocument)domContainer.NativeDocument, "___WATINRESULT")); }
public IEnumerable <INativeElement> GetElementsWithQuerySelector(string selector, DomContainer domContainer) { domContainer.RunScript(new ScriptLoader().GetSizzleInstallScript()); var container = "document"; if (_element != null) { container = _element.GetJavaScriptElementReference(); if (new ElementTag(_element.TagName).Equals(new ElementTag("frame"))) { container = container + ".contentDocument"; } } var code = string.Format("document.___WATINRESULT = Sizzle('{0}', {1});", selector, container); domContainer.RunScript(code); return(new JScriptElementArrayEnumerator((IEDocument)domContainer.NativeDocument, "___WATINRESULT")); }