WEB开发网
开发学院软件开发Java 使用selenium测试showModalDialog模态对话框 阅读

使用selenium测试showModalDialog模态对话框

 2009-09-21 00:00:00 来源:WEB开发网   
核心提示: 接下来就可以在弹出网页里进行操作,获取需要返回给父页面的值,使用selenium测试showModalDialog模态对话框(2),这些值一般是一个数组,获取值后关闭弹出网页并返回父页面,从部门树里选择部门,然后返回:Java代码//点击后弹出部门选择框的图片StringdepChooseLoc

接下来就可以在弹出网页里进行操作,获取需要返回给父页面的值,这些值一般是一个数组。获取值后关闭弹出网页并返回父页面。在父页面里再次点击打开模态对话框的元素,对showModalDialog方法进行第二次覆盖,将上面获取的值直接返回。

Java代码   

public void acceptModalValue(String locator,String[] values){ 
  String overrideShowModalDialogJs=="if(selenium.browserbot.getCurrentWindow().showModalDialog){"; 
 
overrideShowModalDialogJs += "selenium.browserbot.getCurrentWindow().showModalDialog = function( sURL, vArguments, sFeatures)"; 
 
overrideShowModalDialogJs +="{ "+generateModalDialogReturnObject(values)+”return temp”; 
 
overrideShowModalDialogJs += "};}"; 
//showModalDialog方法进行覆盖 
selenium.getEval(overrideShowModalDialogJs); 
selenium.click(locator); 
} 
 
private void generateModalDialogReturnObject (String[] values){ 
  StringBuffer returnObject=new StringBuffer(); 
  returnObject.append(“var temp=new Array();”); 
  for(int i=0;i<values.length;i++){ 
    returnObject.append(“temp[”+i+”]=’”+values[i]+”’;”); 
  } 
  return returnObject.toString(); 
}
 

这样就完成了整个过程。看一个示例,该示例打开一个选部门的模态对话框,从部门树里选择部门,然后返回:

Java代码  

//点击后弹出部门选择框的图片 
String depChooseLocator=”…/img”; 
//点击并选中该弹出网页 
clickAndSelectModalDialog(depChooseLocator); 
//执行部门树的操作 
…. 
//获取该对话框要返回给父页面的值 
String name=selenium.getEval(“window.seltree.GetAllCheckText();”); 
String id=selenium.getEval(“window.seltree.GetAllNodeId();”); 
//关闭部门选择对话框 
closeModalDialog(); 
//返回父页面 
Selenium.selectWindow(“name=main95598”); 
//组装返回值 
String returnValues=new String[2]; 
returnValues[0]=name; 
returnValues[1]=id; 
//父页面获取对话框返回值 
acceptModalValue(depChooseLocator, returnValues);
 

可以进一步抽象为模板回调方法,略。

上一页  1 2 

Tags:使用 selenium

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接