浏览器多窗口切换 Java+Selenium

方法一 利用for循环来实现窗口之间的切换

/*页面A切换到页面B,点击超链接A,关闭页面A;如果页面B要切换到C,点击超链接C,关闭页面B*/

WebElement A = driver.findElement(By.linkText("A"));//超链接A
        A.click();
        Thread.sleep(1000);
        
        String handle = driver.getWindowHandle();//获取当前页面的句柄
        for(String handles : driver.getWindowHandles()){//获取所有页面的句柄,并循环判断是不是当前的句柄
            if(!handles.equals(handle)){//和当前driver不相等,关闭当前页面,切换到第二个页面
                driver.close();//关闭当前页面
                driver.switchTo().window(handles);//就调用切换窗口的方法,切换到第二个窗口
            }
        }

方法二  1、获取所有窗口的句柄并放入到set集合中 

             2、把set集合放入到list对象中

             3、通过list数组的索引使用switchTo()实现切换

        Set<String> window_handles = driver.getWindowHandles();//获取所有页面的句柄
        List<String> list = new ArrayList<String>(window_handles);//把set集合放入List对象
        driver.switchTo().window(list.get(1));//切换到弹出的新窗口
        Thread.sleep(1000);
        String title = driver.getTitle();//获取当前窗口的title
        System.out.println("已切换到"+title);
        String url = driver.getCurrentUrl();//获取新窗口的url
        System.out.println(url);
        driver.close();//关闭当前界面
        driver.switchTo().window(list.get(0));//返回至原界面

猜你喜欢

转载自blog.csdn.net/languolan/article/details/81209146