[英]How can I get all nodes of a tree in RFT?
我如何在Rational Functional Tester中獲取樹的所有節點?我已經使用getTestdata()
嘗試了它,但無法解決問題?
代碼段:
ITestDataTree iTreeData =(ITestDataTree)businessObj.smi_LocTreePricingRules().getTestData("tree");
ITestDataTreeNodes iNodes = iTreeData.getTreeNodes();
System.out.println("node count:"+iNodes.getNodeCount());
ITestDataTreeNode[] rootNodes = iNodes.getRootNodes();
// System.out.println(iNodes.getNodeCount());
// ITestDataTreeNodes nodes= tree.getTreeNodes();
System.out.println(rootNodes.length);
for(int i = 0; i < rootNodes.length; i++) {
genericObj.showTree(rootNodes[i]); //This showTree method is present in another GenericLib class. public void showTree(ITestDataTreeNode node)
{
//Recursive method to print out tree nodes with proper indenting.
//Determine number of tabs to use - to properly indent tree
//Print out node name + number of children
//System.out.println( node.getNode() + " (" + node.getChildCount() + "children)" );
//Determine if node has children; recursively call this same
//method to print out child nodes.
ITestDataTreeNode[] children = node.getChildren();
int childCount = ( children != null ? children.length : 0 );
for ( int i = 0; i < childCount; ++i )
showTree(children[i]);
String synb = node.getNode().toString();
System.out.println( node.getNode() + " (" + node.getChildCount() + "children)" );
}
但是這段代碼給了我根節點的直接子節點,如何獲得像子節點的子節點一樣的所有節點呢?
getTestData("tree")
API應該能夠實現對樹節點的遍歷。 您能否在嘗試獲取樹的所有節點的地方共享代碼片段?
如果需要摘錄,可以使用以下摘錄:
public printTreeNodes(){
//Declare variables for tree
ITestDataTree cdTree;
ITestDataTreeNodes cdTreeNodes;
ITestDataTreeNode[] cdTreeNode;
//Variables to hold tree data
//tree_mytree() is the tree object you want to traverse
cdTree = (ITestDataTree)tree_mytree().getTestData("tree");
cdTreeNodes = cdTree.getTreeNodes();
cdTreeNode = cdTreeNodes.getRootNodes();
//Print out total number of nodes
System.out.println ("Tree Total Node Count: " + cdTreeNodes.getNodeCount());
System.out.println ("Tree Root Node Count : " + cdTreeNodes.getRootNodeCount());
//Iterate through tree branches; this is a recursive method.
for (int i = 0;i<cdTreeNode.length;++i)
showTree(cdTreeNode[i], 0);
}
void showTree(ITestDataTreeNode node, int indent)
{
//Recursive method to print out tree nodes with proper indenting.
//Determine number of tabs to use - to properly indent tree
int tabCount = ( indent < tabs.length() ? indent :
tabs.length() );
//Print out node name + number of children
System.out.println(tabs.substring(0, tabCount) + node.getNode() + " (" + node.getChildCount() + "children)" );
//Determine if node has children; recursively call this same
//method to print out child nodes.
ITestDataTreeNode[] children = node.getChildren();
int childCount = ( children != null ? children.length : 0 );
for ( int i = 0; i < childCount; ++i )
showTree(children[i], indent+1);
}
//String of tabs used to indent tree view
final String tabs = "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.