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());