selenium IDE处理各种窗口问题解决方法

一、处理模态窗口: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个语句,回到主窗口。

close    
selectWindow null  

 

 

 

二、处理confirm/alert/prompts弹出窗口

 处理方式如下:

selenium IDE处理各种窗口问题解决方法

相应示例代码如下:

<!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>

 

 

 

 

 

 

你可能感兴趣的:(selenium)