on 24 Nov 2022 11:06 PM - edited on 12 Nov 2024 10:22 AM by HannahM
For editing a browser monitor in script mode rather than as a clickpath, please see the documentation on correct script formatting: Script mode for Browser Monitors. Note: Ctrl + Spacebar will provide a list of autocomplete suggestions when working in script mode.
// assign default value. validate on this value after page load (fail if found)
var mysearchvalue = "ValueDidNotGetAssigned";
try {
var loc = api.getContext().location.name;
api.info("Location Name is: " + loc);
var platform = api.getContext().location.cloudPlatform;
api.info("Cloud Platform is: " + platform);
// set parameters
if ((loc.indexOf("Mumbai") >= 0) && (platform.indexOf("Alibaba") >= 0)) {
mysearchvalue = 'Mumbai';
} else if ((loc.indexOf("Sydney") >= 0) && (platform.indexOf("AWS") >= 0)) {
mysearchvalue = 'Sydney';
} else if ((loc.indexOf("N. California") >= 0) && (platform.indexOf("AWS") >= 0)) {
mysearchvalue = 'N. California';
} else if ((loc.indexOf("Chennai") >= 0) && (platform.indexOf("Azure") >= 0)) {
mysearchvalue = 'Chennai';
}
// display location, platform and parameter values on error screenshot
document.body.innerText = "Location Name is: " + loc + ' and Cloud Platform is:' + platform + ' and Search Value is: ' + mysearchvalue;
} catch (err) {
api.info("Error message: " + err.description);
}
api.setValue("searchvalue", mysearchvalue);
unique-id
in the example below)var Clickevent = new MouseEvent('dblclick', {'view': window});
document.getElementById('unique-id').dispatchEvent(Clickevent);
id-of-iframe
& CSS-selector-for-element
)document.getElementById('id-of-iframe').contentWindow.document.querySelector('CSS-selector-for-element')
1.198
, --disable-web-security
is set to true
. It can be set to false
by adding the following line to the Synthetic Script."configuration": {
"device": {
"orientation": "landscape",
"deviceName": "Desktop"
},
"disableWebSecurity": false
},
// Capture the security question element
var question = document.getElementById("CSS ID of the Security Question Text");
// Check to see if the security question element exists
if (question === null) {
// No security question was asked so skip the next click
api.skipNextSyntheticEvent();
} else {
//Security question was asked so get the words of the question
var words = question.textContent.split(" ");
//Select the last word of the question and remove the question mark at the end
var answer = words[words.length - 1].slice(0, -1);
// set the answer to the security question
document.getElementById("CSS ID for the Answer Box").value = answer;
}
text = 'Text to validate';
text1 = document.documentElement.innerText;
api.info(text1);
api.info(text1.indexOf(text));
if (text1.indexOf(text) == -1) {
api.fail("execution failed");
}
Can the JS also be used to simulate a TAP action for a mobile device script? We have attempted to record a new mobile device monitor that must select an item from a drop down, but the playback will not execute the selection. Would a JS command work for that tap action and/or would it possible to simply set the value with a JS? IF you have an example to share, that would be great. Thanks