51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3833|回复: 10
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 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

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


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    奋斗
    2020-12-31 15:38
  • 签到天数: 196 天

    连续签到: 1 天

    [LV.7]测试师长

    2#
    发表于 2019-8-15 11:43:51 | 只看该作者
    个人理解,没有切换到新窗口,焦点还在原来的句柄
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-11-1 14:56
  • 签到天数: 1182 天

    连续签到: 1 天

    [LV.10]测试总司令

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

    使用道具 举报

  • TA的每日心情
    奋斗
    3 天前
  • 签到天数: 1516 天

    连续签到: 5 天

    [LV.Master]测试大本营

    4#
    发表于 2019-8-16 11:00:07 | 只看该作者
    没切换成功吧
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    20 分钟前
  • 签到天数: 2813 天

    连续签到: 1 天

    [LV.Master]测试大本营

    5#
    发表于 2019-8-16 12:47:04 | 只看该作者
    是不是就是一个
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 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;
    }
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2019-10-8 16:09:47 | 只看该作者
    看大窗口有几个,有个的只是一个跳转而已,窗口还是同一个大窗口
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2020-1-3 15:49:28 | 只看该作者
    就是一个句柄
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2020-1-3 15:50:13 | 只看该作者
    只有一个大窗口 是一个句柄
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2021-3-24 09:39
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    11#
    发表于 2020-1-7 13:59:04 | 只看该作者
    首先 ,确认点击链接后是否在当前窗口打开,如果是当前窗口打开,则是同一个句柄是对的
    若在新窗口打开,则需要将焦点切换到新窗口才能获取新窗口的句柄,你代码里没有转换窗口哦
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-18 08:20 , Processed in 0.069420 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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