zhongxinxu 发表于 2012-11-7 12:56:20

Selenium关于模式对话框操作求解、求解!

1.点击一个页面元素后打开(这个页面点击【新建任务】button),这个页面对应的html脚本如下:
<button id="opene_create" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary ui-state-hover" role="button" aria-disabled="false">
<span class="ui-button-icon-primary ui-icon ui-icon-newwin"></span>
<span class="ui-button-text">新建任务</span>
</button>

2.出现一个模式对框,如图1所示(这个对话框还分几个菜单,如左边所示)。通过查看上面的“id="opene_create",查找到opene_create的function,脚本如下,该窗口应该为模式对话框,并跳转到page0.php页面。
        $("#opene_create").click(function(){
                        var ip=$("#ipp"+ipm).val();
                        diag = new Dialog();
                        diag.Modal = true;
                        diag.Width = 600;
                        diag.Height = 500;
                        diag.Title = "新建任务";
                        diag.URL = "page0.php?username=<?=$username?>&ip="+ip;
                        diag.show();
                });       

3。在这个对话框上,左边菜单“任务基本信息”输入后,点击【一下步】,进入下一个菜单的输入,如图2所示,这时对话框左边菜单的“高级设定”突出显示。在上一部的“任务基本信息”菜单中点击【下一步】按钮在page0.php页面查得脚本如下:
<div id="error_show" class="ui-state-default ui-corner-all" style="color:#39F; float:left; line-height:30px; text-align:center; width:300px; height:35px; margin:15px auto 5px 15px ; display:none;"></div>
        <div style="float:right; margin-right:25px !important; margin:15px auto 5px 15px ; ">
                <button style="width:80px;" id="form_xyb">下一步</button>&nbsp;&nbsp;
                <button style="width:80px;" id="form_qx" />取消</button>
        </div>
4.通过【下一步】按钮的 id=form_xyb,查的处理的function()脚本如下:
$( "#form_xyb" ).click(function() {
var bit=$("#disk_bit").val();
var disk_length=$("#disk_length").val();
var disk_name=$("#disk_name").val();
var disk_path=$("#disk_path").val();
var disk_length=$("#disk_length").val();
var disk_num=$("#disk_num").val();
var disk_bit=$("#disk_bit").val();
var task_type=$("#task_type").val();
var disk_ip=$("#disk_ip").val();
var disk_ip_clientname=$("#disk_ip").find("option:selected").text();
var disk_mode=$('input:radio:checked').val();
// var zq_num=$("#zq_num").val();
// var fb_num=$("#fb_num").val();
if($("#fb_num").val()=="无限制")
{
var fb_num="";
}
else
{
var fb_num=$("#fb_num").val();
}
if($("#zq_num").val()=="无限制")
{
var zq_num="";
}
else
{
var zq_num=$("#zq_num").val();
}
if(task_type=="osback")
{
if(disk_ip == "sel")
{
alert("请选择需要备份的客户端!");return false;
}
if(fb_num == "" || fb_num == null || fb_num == "undefined" || fb_num==0)
{
alert("副本不能为零或空!");return false;
5、上面的每个菜单部分操作中的下一步, 都是同一个按钮id:id=form_xyb,都是调用了相同的$( "#form_xyb" ).click(function()功能。
6.到最后一步菜单项,如图3所示,其页面脚本如下:
<div class="ui-dialog-buttonpane ui-widget-content ui-helper-clearfix">
<div class="ui-dialog-buttonset">
<button class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button" aria-disabled="false">
<span class="ui-button-text">确定</span>
</button>
<button class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button" aria-disabled="false">
<span class="ui-button-text">取消</span>
</button>
</div>
7.点击【确定】按钮后,其值返回主页面,主页列表中显示该任务名及相关属性值。
在网上查到一篇关于模式窗口的处理,看了半天也没领会其意,不知道有什么更好比较好懂直接的方法?

zhongxinxu 发表于 2012-11-7 12:58:56

上面问题附属的图1、图2在这里。

WANDY 发表于 2012-11-8 10:34:25

试过 selenium.selectWindow 或者driver.switchTo().window(handle)么?

如果是java 需要结合

Object[] a=wd.getWindowHandles().toArray();
wd.switchTo().window((String)a);
以上代码为webdriver跳转到新弹出窗口。

ryannj 发表于 2012-11-8 13:23:45

webdriver跳转确实是比较麻烦

zhongxinxu 发表于 2012-11-8 21:28:29

三楼的,selenium.selectWindow 或者driver.switchTo().window(handle)----这个方法行不通,父窗口和弹出框所在页都是同一个handle。通过导航方法进入弹出框所在URL页,页操作不了。
---用窗口操作和操作modal dialog是两回事,网上查得modal dialog弹出框,其上的selenium的命令操作将失效,因为这种弹出框禁止其它的js运行。但webdriver不知道可以不,webdriver是直接命令跟浏览器提供的接口打交道,类似于手工操作,绕过了js这中间代理层。按原理来说,webdriver相对来说要好处理,但找不到方法。有高手吗

zjianwlj 发表于 2012-12-28 11:37:26

回复 5# zhongxinxu

我现在也遇到和你一样的问题不知道你这个问题是怎么处理的   能告诉一下我吗    我的邮箱是zhongfuchao@hotmail.com    谢谢你

遇上鱼子 发表于 2013-1-23 17:45:13

这个不是弹出页面,是图层,对于图层你需要定位到该图层就可以了。用selectFrame(String) 然后定位,在调试过程中,尽量用thread等待长一点。

yanfang_zheng 发表于 2013-1-23 23:00:07

顶一下

bob123654 发表于 2013-2-4 10:58:00

问题描述太长了可以简洁一点吗? 没心情看
页: [1]
查看完整版本: Selenium关于模式对话框操作求解、求解!