È possibile adattare l'API find() dinamica ed utilizzare il metodo dojoTreeExpand() per trovare tutti gli oggetti presenti in un controllo struttura Dojo nell'AUT (application under test)..
Questo esempio mostra come utilizzare DojoTreeTestObject() per trovare tutti gli oggetti presenti in una struttura Dojo. È possibile adattare il codice in modo da cambiare il browser se richiesto.
public void testMain(Object[] args) {
// TODO Insert code here
dojoTreeExpand();
}
public void dojoTreeExpand() {
//Bring the application under test dynamically using startBrowser method and browser as Mozilla Firefox (assuming Firefox is enabled correctly)
//Tips: You change the browser to Internet Explorer in the startBrowser method.
ProcessTestObject process = RationalTestScript.startBrowser(
"Mozilla Firefox", "http://docs.dojocampus.org/dijit/Tree" (http://docs.dojocampus.org/dijit/Tree));
// ProcessTestObject process =
// RationalTestScript.startBrowser("Internet Explorer",
// "http://docs.dojocampus.org/dijit/Tree" (http://docs.dojocampus.org/dijit/Tree));
// Wait for the browser to load completely.
process.waitForExistence();
// The RootTestObject represents a global view of the Application being
// tested. It does not
// represent an actual TestObject in the software under test. it
// provides ways to finding an arbitrary
// TestObject based on properties
RootTestObject to = RootTestObject.getRootTestObject();
// Define Test Object array
TestObject[] dojoControls = null;
for (int i = 0; i <= 10; i++) {
// Performing a find operation and saving the returned object in the TestObject
// array.
dojoControls = to.find(RationalTestScript.atDescendant(".class",
"Html.A", ".className", "show"));
if (dojoControls.length >= 1) {
break;
}
RationalTestScript.sleep(3);
}
// Assigning the first found Test Object to the GUITestObject, and
// perform a click
((GuiTestObject) dojoControls[0]).click();
//Wait enough to load the page completly.
sleep(30);
// Define Test Object array, for a Dojo Tree structure
TestObject[] trees = null;
for (int i = 0; i <= 10; i++) {
// Doing a find operation and saving the returned object in the TestObject
// array.
trees = to.find(RationalTestScript.atDescendant(".dojoclass",
"tree", ".id", "treeOne"));
if (trees.length == 1) {
break;
}
RationalTestScript.sleep(3);
}
//
DojoTreeTestObject dijitTree = new DojoTreeTestObject(trees[0]);
// Dispatched when a tree has 'Continents' as node is expanded
dijitTree.expand(atList(atText("Continents"), atText("North America"),
atText("Mexico")));
// Dispatched when a tree has 'Continents' as node is expanded
dijitTree.click(atList(atText("Continents"), atText("North America"),
atText("Mexico"), atText("Guadalajara")));
sleep(10);
}
}