selenium跳转新窗口的问题

1、通过窗口的标题去跳转新窗口

String parentWin=this.getWindowHandle();//获取当前窗口的句柄
Set<String> allWindowsId = driver.getWindowHandles();//获取所有窗口句柄
for(String windowId :allWindowsId){
    if(driver.switchTo().window(windowId).getTitle().contains("市场")){
        driver.switchTo().window(windowId);
        break;
    }
}
Assert.assertEquals("国云数据市场", driver.getTitle());
System.out.println("New page title is:" + driver.getTitle());

2、通过tab的id,跳到最后一个tab页

Set<String> winSet = this.driver.getWindowHandles();//获取所有句柄
    List<String> winList = new ArrayList<String>(winSet);//转成list列表
    String newTab = winList.get(winList.size() - 2);//定义新的tab页是倒数第二个页面
    driver.close(); // close the original tab 关闭最后一个
    driver.switchTo().window(newTab); // switch to new tab  跳到原来的倒数第二个
    Thread.sleep(1000);

另一种通过index的值去确定

    Set<String> allWindowsId = driver.getWindowHandles();//获取所有窗口句柄
//    List<String> winList=new ArrayList<String>(allWindowsId);
    driver.switchTo().window(allWindowsId.toArray()[allWindowsId.size() - 1].toString());   //跳到最后一个tab页
    Assert.assertEquals("国云数据市场", driver.getTitle());
    System.out.println("New page title is:" + driver.getTitle());
原文地址:https://www.cnblogs.com/amy7758/p/5623512.html