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;