51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

测试开发精英班,通向高级软件测试工程师【周活动】 找茬--心里圈的故事 !【长期招募】博为峰网校招聘兼职讲师!横扫BAT,Python全栈测试开发技能大全
【106期】:如何树立正确使用Python做开发的习惯 【征稿】提交你的测试成绩单! 【专题】用尽一切办法只为让你学好用例 自学软件测试那点事
查看: 303|回复: 6

[selenium] 各位大神帮忙看看,Java +selenium 获取到两个窗口的句柄一样是为什么

[复制链接]

该用户从未签到

发表于 2019-8-14 15:52:05 | 显示全部楼层 |阅读模式
      点击页面的链接,打开了新的窗口:

  driver.get("https://open.unionpay.com/tjweb/index");
        driver.manage().window().maximize();
//        获取当前窗口的句柄
         String currentWindow = driver.getWindowHandle();
         System.out.println("当前窗口的句柄是:"+currentWindow);
        driver.findElement(By.linkText("服务协议")).click();
        Thread.sleep(2000);
//        打印新窗口句柄
        System.out.println("新窗口的句柄为:"+driver.getWindowHandle());
        Thread.sleep(2000);


打印的日志:
当前窗口的句柄是:CDwindow-9454A0922BCD65DBCBEF3CD8DF979F91
新窗口的句柄为:CDwindow-9454A0922BCD65DBCBEF3CD8DF979F91

为什么两个窗口的句柄一样呢?


回复

使用道具 举报

  • TA的每日心情

    前天 11:43
  • 签到天数: 74 天

    连续签到: 5 天

    [LV.6]测试旅长

    发表于 2019-8-15 11:43:51 | 显示全部楼层
    个人理解,没有切换到新窗口,焦点还在原来的句柄
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 07:41
  • 签到天数: 965 天

    连续签到: 1 天

    [LV.10]测试总司令

    发表于 2019-8-16 10:02:04 | 显示全部楼层
    2楼正解,代码操作新打开一个窗口,但焦点仍然在原窗口上,需要把焦点切换到新窗口上,然后再获取焦点!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    前天 10:29
  • 签到天数: 363 天

    连续签到: 5 天

    [LV.8]测试军长

    发表于 2019-8-16 11:00:07 | 显示全部楼层
    没切换成功吧
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    前天 08:03
  • 签到天数: 1390 天

    连续签到: 6 天

    [LV.10]测试总司令

    发表于 2019-8-16 12:47:04 | 显示全部楼层
    是不是就是一个
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2019-8-28 20:41:27 | 显示全部楼层
    /**
      * 功能: 切换windows窗口
      *@param driver
      *@param windowTitle
      *@return boolean
      */
    public boolean switchToNewWindow(WebDriver driver, String windowTitle) {
      boolean flag = false;
      try {
       String currentHandle = driver.getWindowHandle();
       Set<String> handles = driver.getWindowHandles();
       for (String s : handles) {
        if (s.equals(currentHandle))
         continue;
        else {
         driver.switchTo().window(s);
         if (driver.getTitle().contains(windowTitle)) {
          flag = true;
          System.out.println("Switch to window: " + windowTitle
            + " successfully!");
          break;
         } else
          continue;
        }
       }
      } catch (NoSuchWindowException e) {
       System.out.println("Switch to window: " + windowTitle
         + " failed!");
       e.printStackTrace();
       flag = false;
      }
      return flag;
    }
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2019-9-22 01:33 , Processed in 0.060590 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2019 Comsenz Inc.

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