使用Selenium IDE对Popup进行操作

时间:2016-06-08 14:37:29

标签: selenium selenium-ide

我有一个仍然使用弹出窗口而不是Modals的应用程序,我们需要测试一些弹出窗口的行为。在我目前的研究阶段,似乎在waitForPopup调用中发生了失败。为了确认这一点,我创建了一个基本的HTML页面,在单击链接时弹出一个弹出窗口(使用IDE轻松模拟)

<html>
  <head>
    <title>Test Popup</title>
  </head>

  <body>
    <a href="#" class="click_me" id="click_me" onclick="openwindow();">Click Me</a>
  </body>

  <script>
    function openwindow() {
    var i, l, options = [{
      value: 'first',
      text: 'First'
    }, {
      value: 'second',
      text: 'Second'
    }],
    newWindow = window.open("", "popup1", "height=200,width=400,status=yes,toolbar=no,menubar=no,location=no");  

    newWindow.document.write("<select onchange='window.opener.setValue(this.value);'>");
    for(i=0,l=options.length; i<l; i++) {
        newWindow.document.write("<option value='"+options[i].value+"'>");  
        newWindow.document.write(options[i].text);  
        newWindow.document.write("</option>");
    }
    newWindow.document.write("</select>");
    }

    function setValue(value) {
    document.getElementById('value').value = value;
    }
  </script>
</body>

Selenium测试用例

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="http://localhost.localdev.com/" />
<title>localpopuptest</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">localpopuptest</td></tr>
</thead><tbody>
<tr>
    <td>click</td>
    <td>id=click_me</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>id=click_me</td>
    <td></td>
</tr>
<tr>
    <td>waitForPopUp</td>
    <td>popup1</td>
    <td>30000</td>
</tr>
<tr>
    <td>assertTitle</td>
    <td></td>
    <td>Test Popup</td>
</tr>

</tbody></table>
</body>
</html>

这似乎是一个常见问题,是否有更好的方法来跟踪和断言弹出窗口?

1 个答案:

答案 0 :(得分:0)

检查出来:

click        | id=click_me
selectWindow | popup1
select       | //select    | Second

如果你的弹出窗口有动态内容,你可以添加:

waitForElementPresent | //select
在 selectWindow之后