public static string formatJsCode(this WatiN_IE ie, string codeToFormat) { if (ie.url().not_Equal("about:blank")) { "opening ABOUT:Blank".info(); ie.open("about:blank"); } else { "already in ABOUT:Blank".info(); } if (ie.js_FunctionExists("js_beautify").isFalse()) { var jsBeautify = @"beautify.js".local(); ie.eval(jsBeautify.fileContents()); if (ie.js_FunctionExists("js_beautify")) { "Injected beautify.js into about:blank".info(); } else { "Failed to Inject js_beautify code".error(); } } "formating Javascript with size: {0}".info(codeToFormat.size()); ie.setJsObject(codeToFormat); ie.eval("window.external.setJsObject(js_beautify(_jsObject))"); var result = ie.getJsObject().str().fix_CRLF(); // "formated Javascript has size: {0}".info(result.size()); return(result); }
public static WatiN_IE.ToCSharp injectJavascriptFunctions(this WatiN_IE ie, bool resetHooks) { if (ie.WebBrowser.isNull()) { "in InjectJavascriptFunctions, ie.WebBrowser was null".error(); } else { if (ie.WebBrowser.ObjectForScripting.isNull() || resetHooks) { ie.WebBrowser.ObjectForScripting = new WatiN_IE.ToCSharp(); "Injecting Javascript Hooks * Functions for page: {0}".debug(ie.url()); ie.eval("var o2Log = function(message) { window.external.write(message) };"); ie.invokeScript("o2Log", "Test from Javascript (via toCSharp(message) )"); ie.eval("$o2 = window.external"); "Injection complete (use o2Log(...) or $o2.write(...) to talk back to O2".info(); return(ie.WebBrowser.ObjectForScripting as WatiN_IE.ToCSharp); } else { if ((ie.WebBrowser.ObjectForScripting is WatiN_IE.ToCSharp)) { return(ie.WebBrowser.ObjectForScripting as WatiN_IE.ToCSharp); } else { "in WatiN_IE injectJavascriptFunctions, unexpected type in ie.WebBrowser.ObjectForScripting: {0}".error(ie.WebBrowser.ObjectForScripting.typeName()); } } } return(null); }
public static WatiN_IE deleteJsVariable(this WatiN_IE watinIe, string jsVariable) { var evalString = "try { delete " + jsVariable + " } catch(exception) { }"; watinIe.eval(evalString); return(watinIe); }
public static WatiN_IE inject_FirebugLite(this WatiN_IE ie) { var firebugLiteScript = "(function(F,i,r,e,b,u,g,L,I,T,E){if(F.getElementById(b))return;E=F[i+'NS']&&F.documentElement.namespaceURI;E=E?F[i+'NS'](E,'script'):F[i]('script');E[r]('id',b);E[r]('src',I+g+T);E[r](b,u);(F[e]('head')[0]||F[e]('body')[0]).appendChild(E);E=new Image;E[r]('src',I+L);})(document,'createElement','setAttribute','getElementsByTagName','FirebugLite','4','firebug-lite.js','releases/lite/latest/skin/xp/sprite.png','https://getfirebug.com/','#startOpened');"; ie.eval(firebugLiteScript); "[Injected FirebugLite]".info(); return(ie); }
public static object downloadAndExecJavascriptFile(this WatiN_IE ie, string url) { "[WatiN_IE] downloadAndExecJavascriptFile: {0}".info(url); var javascriptCode = url.uri().getHtml(); if (javascriptCode.valid()) { ie.eval(javascriptCode); } return(ie); }
public static WatiN_IE inject_jQuery(this WatiN_IE ie) { var jQueryFile = "jquery-1.6.2.min.js"; var jQueryHtml = jQueryFile.local().fileContents(); if (jQueryHtml.valid()) { ie.eval(jQueryHtml); "[Injected jQuery]".info();// (jQuery script {0} size: {1}".info(jQueryFile, jQueryHtml.size()); } else { "[Injecting jQuery] could find local jQuery file: {0}".error(jQueryFile); } return(ie); }
public static WatiN_IE alert(this WatiN_IE ie, string alertScript) { return(ie.eval("alert({0});".format(alertScript))); }
public static WatiN_IE eval(this WatiN_IE ie, string script) { return(ie.eval(script, true)); }
public static WatiN_IE eval_ASync(this WatiN_IE ie, string script) { O2Thread.mtaThread(() => ie.eval(script)); return(ie); }
public static WatiN_IE jQuery_Append_Body(this WatiN_IE ie, string htmlToAppend) { ie.eval("$('body').append('<div>{0}<div>')".format(htmlToAppend)); return(ie); }