Executes JavaScript code based on the currently loaded HTML content.
BrowserAPI.bdh
BrowserExecuteJavaScript( sScript : in string sResult : out string optional uTestObject : in union optional ): boolean;
Parameter | Description |
---|---|
sScript | The JavaScript code. |
sResult | Optional: Variable receiving the result of the JavaScript execution, converted to a string. |
uTestObject | The XPath locator or the handle to the DOM element. This element can be accessed as
currentElement from within the script.
Note: Return values are not supported when
uTestObject is specified. In this case, NULL must be supplied as value for
sResult.
|
true if successful
false otherwise
benchmark SilkPerformerRecorder use "Kernel.bdh" use "BrowserAPI.bdh" dcluser user VUser transactions TJavascript : 1; dcltrans transaction TJavascript var sScript : string; sVersion : string; sObjectAsJSON : string; sResult : string; begin BrowserStart(BROWSER_MODE_DEFAULT, 800, 600); // define JavaScript to execute sScript := "window.open('http://demo.borland.com/gmoajax')"; // execute the script (which opens a new window and navigates to demo.borland.com) BrowserExecuteJavaScript(sScript); // Check, if page is using "Modernizr" BrowserExecuteJavaScript("if (window.Modernizr) { window.Modernizr._version; }", sVersion); if (Strlen(sVersion) > 0) then Print("Page is using Modernizr, version " + sVersion); else Print("Page is not using Modernizr"); end; // Acces object, stringifying it first BrowserExecuteJavaScript("JSON.stringify(window.Modernizr)", sObjectAsJSON); Print(sObjectAsJSON); // yields, e.g.: {"touch":false,"cssanimations":true,"csstransitions":true,"_version" ... } // run javascript for specific locator // return value can be retrieved via helper variable BrowserNavigate("http://demo.borland.com/gmoajax/"); BrowserExecuteJavascript("document.body.sResult=currentElement.currentStyle.borderBottomColor", NULL, "//img[@id='logoIMG']"); BrowserGetProperty("//body", "sResult", sResult); Print(sResult); // yields, e.g.: hsl(120, 33%, 43%) end TJavascript;