51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 7775|回复: 16
打印 上一主题 下一主题

selenium2怎么解决无法处理对话框的问题?

[复制链接]
  • TA的每日心情
    开心
    2015-5-5 13:21
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2013-11-5 14:57:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 wsryyffs 于 2013-11-5 14:59 编辑

    弹出的对话框,用String[] handlesmain=new String[driver.getWindowHandles().size()];无法获取到,怎么解决这个问题啊?
    对话框中要输入多个数据和点击按钮操作
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    2#
    发表于 2013-11-5 15:51:33 | 只看该作者
    你的弹框是windows 弹框?还是一个新的web页面?。。。如果是关于有多个web页面窗口。。。可以用switchto 方法。。比如说:
    //Store the current window handle  
    String winHandleBefore = driver.getWindowHandle();  
             
    //Switch to new window opened  
    for(String winHandle : driver.getWindowHandles()){  
                driver.switchTo().window(winHandle);  
                }  
    // Close the original window  
            driver.switchTo().window(winHandleBefore);  
            driver.close();  

    然后就 可以把焦点放在新打开的页面上。。。或者你如果知道新窗口的标题或者name直接用switchto方法也行的。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-5-5 13:21
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
     楼主| 发表于 2013-11-11 10:32:18 | 只看该作者
    你的弹框是windows 弹框?还是一个新的web页面?。。。如果是关于有多个web页面窗口。。。可以用switchto 方 ...
    joykao 发表于 2013-11-5 15:51


    弹出一个对话框,不是新的web页面,driver.getWindowHandles无法获取到弹出的对话框
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    4#
    发表于 2013-11-11 13:29:34 | 只看该作者
    回复 3# wsryyffs

    你这个是常见的alert 弹框的话。。试试这个


    Alert alert = driver.switchTo().alert();
    //点击确定
    alert.accept();
    //取消
    alert.dismiss();
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-5-5 13:21
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    5#
     楼主| 发表于 2013-11-12 08:36:25 | 只看该作者
    回复  wsryyffs

    你这个是常见的alert 弹框的话。。试试这个


    Alert alert = driver.switchTo().al ...
    joykao 发表于 2013-11-11 13:29


    不是alert弹出框,弹出窗口中有输入、选择、提交等操作
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    6#
    发表于 2013-11-12 10:13:39 | 只看该作者
    回复 5# wsryyffs


    截图上来看看? 应该是个alert吧。。。只是上面有输入框和按钮啥的。。或者是个frame?

    driver.switchTo().frame()
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-5-5 13:21
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    7#
     楼主| 发表于 2013-11-13 17:10:12 | 只看该作者
    回复 6# joykao


        测试地址:http://samples.msdn.microsoft.co ... howModalDialog2.htm

    点击 Push To Create
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2013-11-13 17:26:07 | 只看该作者
    这个是新页面,需要跳转window的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    9#
    发表于 2013-11-13 21:28:53 | 只看该作者
    回复 7# wsryyffs


        昏倒。。这不是一个新的页面么?
    //Store the current window handle  
    String winHandleBefore = driver.getWindowHandle();  
             
    //Switch to new window opened  
    for(String winHandle : driver.getWindowHandles()){  
                driver.switchTo().window(winHandle);  
                }  
    // Close the original window  
            driver.switchTo().window(winHandleBefore);  
            driver.close();  

    这个不可以?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2013-11-15 09:51:21 | 只看该作者
    回复 9# joykao

    joykao哥好辛苦
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-5-5 13:21
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    11#
     楼主| 发表于 2013-11-15 11:30:37 | 只看该作者
    本帖最后由 wsryyffs 于 2013-11-15 11:41 编辑
    回复  wsryyffs


        昏倒。。这不是一个新的页面么?
    //Store the current window handle  
    String ...
    joykao 发表于 2013-11-13 21:28 [url=http://bbs.51testing.com/redirect.php?goto=;findpost&pid=3201989&ptid=994349][/url]


    十分抱歉,给的例子没有经过实践。
    麻烦帮忙指导一下这个例子:
    公网地址:http://minyi.runsky.com/?type=1
    操作:点击选择,弹出的窗口中输入内容
    存在的问题:目前只能获取1个窗口,即弹出窗口未获取到
    driver.switchTo().frame("main").findElement(By.xpath(".//*[@id='textfield']")).sendKeys("hello"); 会报错

    代码如下:
    1. Navigation navigation = driver.navigate();
    2. navigation.to("http://minyi.runsky.com/?type=1");

    3. try {
    4. Thread.sleep(15000);

    5. } catch (InterruptedException e) {
    6. // TODO Auto-generated catch block
    7. e.printStackTrace();
    8. }



    9. driver.switchTo().frame("main").findElement(By.xpath(".//*[@id='form1']/div/ol/ul[1]/li[3]/input[2]")).click();

    10. try {
    11. Thread.sleep(10000);

    12. } catch (InterruptedException e) {
    13. // TODO Auto-generated catch block
    14. e.printStackTrace();
    15. }

    16. String[] handles=new String[driver.getWindowHandles().size()];
    17. driver.getWindowHandles().toArray(handles);

    18. for (int i = 0; i < handles.length; i++)
    19. {
    20. System.out.println("switch:"+i+":"+handles[i]);
    21. }

    22. driver.switchTo().frame("main").findElement(By.xpath(".//*[@id='textfield']")).sendKeys("hello");;


    23. driver.quit();
    复制代码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    12#
    发表于 2013-11-15 13:24:48 | 只看该作者
    本帖最后由 joykao 于 2013-11-15 13:39 编辑

    回复 11# wsryyffs


        你这个页面的是不需要switch的吧。。直接找到那些元素就可以了。。我试着打开你那个页面。。结果有js warning。。。我连选择按钮都点不了。。。。我勒个去。。。我貌似根本没办法取元素啊。。。。一定是我的打开方式不对
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-5-5 13:21
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    13#
     楼主| 发表于 2013-11-15 14:56:23 | 只看该作者
    回复  wsryyffs


        你这个页面的是不需要switch的吧。。直接找到那些元素就可以了。。我试着打开你那 ...
    joykao 发表于 2013-11-15 13:24



        是的,不switch能成功,辛苦了。
      我测试的系统是内网,所以一直想从公网上找一个类似的好直接调试,但一直没有找到类似的情况,我再找找,麻烦大家了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    14#
    发表于 2013-11-15 15:55:05 | 只看该作者
    回复 10# Cris@Kaka


       
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    15#
    发表于 2013-11-15 15:55:11 | 只看该作者
    回复 10# Cris@Kaka


       
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2014-4-2 13:08:08 | 只看该作者
    学习了
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-14 20:20 , Processed in 0.078921 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表