| 
 一、处理模态窗口:showModalDialog  
由于弹出模态窗口后,就无法定位到当前窗口的元素和模态窗口的元素,需要添加js解决  
模态窗口动作类似下面语句:  
   
 
 <input id="ctl00_CPH_TopAddButton" class="LongOrangeButtonStyle" type="button" value="Add Single Location" onclick="javascript:window.showModalDialog('EditLocation.aspx?EditOrAdd=Add',window,'dialogWidth:450px;dialogHeight:600px;status:no; directories:yes;scrollbars:no;Resizable=no;status:no');RefreshLocation();" name="ctl00$CPH$TopAddButton"> 
  
 此时,在生成模态窗口前, 先执行语句:  
 
  
   
   | storeEval  |  
   if(selenium.browserbot.getCurrentWindow().showModalDialog){selenium.browserbot.getCurrentWindow().showModalDialog = function(sURL,vArguments,sFeatures){selenium.browserbot.getCurrentWindow().open(sURL, 'modal', sFeatures);};} |  
    xx |  
    
  
  
 再点击  
 
  
   
   | click  |  
     id=ctl00_CPH_TopAddButton   |  
       |  
    
  
  
   
   
则会以新页面形式弹出,就不会定位不到元素  
   
操作完新页面后,执行下面2个语句,回到主窗口。  
 
   
   
   
二、处理confirm/alert/prompts弹出窗口  
 处理方式如下:  
   
相应示例代码如下:  
 
 <!DOCTYPE HTML>
<html lang="zh-cn">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>主窗口</title>
  <script type="text/javascript">
    function output(resultText){
      document.getElementById('output').childNodes[0].nodeValue=resultText;
    }
    function show_confirm(){
      var confirmation=confirm("Choose an option.");
      if (confirmation==true){
        output("Confirmed.");
      }
      else{
        output("Rejected!");
      }
    }
    function show_alert(){
      alert("I'm blocking!");
      output("Alert is gone.");
    }
    function show_prompt(){
      var response = prompt("What's the best web QA tool?","Selenium");
      output(response);
    }
   </script>
</head>
<body>
  <input type="button" id="btnConfirm" onclick="show_confirm()" value="Show confirm box" /></br>
  <input type="button" id="btnAlert" onclick="show_alert()" value="Show alert" /></br>
  <input type="button" id="btnPrompt" onclick="show_prompt()" value="Show prompt" /> </br>
  <br />
  <span id="output">
  </span>
</body>
</html> 
  
   
   
   
   
   
   |