Selenium ShowDialogic模态

时间:2011-10-27 20:08:18

标签: selenium-ide

我将发布一个例子,想知道有什么解决方案 selenium IDE在“模态”窗口中运行而不停止脚本。我会 提供一个在线示例和我构建的脚本:详细信息没有 工作...

<?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://samples.msdn.microsoft.com/workshop/samples/author/dhtml/refs/showModalDialog2.htm" />
<title>New Test</title>
</head>
<body>
    <table cellpadding="1" cellspacing="1" border="1">
        <thead>
            <tr>
                <td rowspan="1" colspan="3">New Test</td>
            </tr>
        </thead>
        <tbody>
            <!--//Open the application and wait to load the combobox-->
            <tr>
                <td>open</td>

                <td>/workshop/samples/author/dhtml/refs/showModalDialog2.htm</td>
                <td></td>
            </tr>
            <tr>
                <td>waitForElementPresent</td>

                <td>name=oHeight</td>
                <td></td>
            </tr>
            <!--//Insert height value and click "Push To Create" button-->
            <tr>
                <td>select</td>

                <td>name=oHeight</td>
                <td>label=250</td>
            </tr>
            <tr>
                <td>click</td>
                <td>css=input[type=&quot;button&quot;]</td>
                <td></td>
            </tr>
            <!--//Wait for the loading the modal page title and check the text -->
            <tr>
                <td>waitForElementPresent</td>

                <td>//h1</td>
                <td></td>
            </tr>
            <tr>
                <td>verifyTextPresent</td>
                <td>This is a modal dialog box. This page is not designed to do
                    anything except display the dialog box arguments.</td>
                <td></td>
            </tr>
            <!--//close the screen and verify that the previous screen is loaded from the height field-->
            <tr>
                <td>close</td>
                <td></td>

                <td></td>
            </tr>
            <tr>
                <td>selectWindow</td>
                <td>null</td>
                <td></td>
            </tr>
            <tr>
                <td>waitForElementPresent</td>
                <td>name=oHeight</td>
                <td></td>
            </tr>

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

1 个答案:

答案 0 :(得分:0)

Web应用程序实际上没有模态对话框,但浏览器对话框除外(例如“将文件另存为...”)和JavaScript的window.alert(),{{1} }和window.prompt()。其他所有内容都是一个单独的窗口(如在传统的Web应用程序中)或阻止访问其背后元素的覆盖(如现代,AJAXy,Web应用程序)。

如果是单独的窗口,则需要window.confirm()然后waitForPopUp ...windowname...,然后selectWindow ...windowname...(没有名称)才能切换回来。

在叠加层的情况下,您可以像页面中的任何其他内容一样对其进行寻址,但您可能会惊讶于元素定位器可能是什么(或者您可能不会)。使用Firefox的“XPather”或“Firebug”插件来找出正确的XPath表达式。