前言:

Selenium在当前页面调整到新页面时打开了新的窗口,此时就需要跳转到新的窗口去,需要把窗口进行切换。

获取窗口句柄方法:

获取所有

  1. //获取所有窗口句柄,返回的是set类型
  2. driver.getWindowHandles();

获取当前:

  1. //获取当前窗口句柄,返回的是string类型
  2. driver.getWindowHandle();

窗口切换方法:

  1. //窗口切换方法,需传入需求切换窗口的句柄
  2. driver.switchTo().window();

实例:

  1. String url = "https://www.baidu.com/";
  2. int j = 0 ;
  3. //引用IE浏览器驱动
  4. System.setProperty("webdriver.ie.driver", "./src/driver/IEDriverServer.exe");
  5. //创建IE浏览器对象
  6. InternetExplorerDriver driver = new InternetExplorerDriver();
  7. //浏览器最大化
  8. driver.manage().window().maximize();
  9. //等待浏览器加载完毕
  10. driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
  11. //打开网站
  12. driver.get(url);
  13. driver.findElement(By.id("kw")).sendKeys("上海");
  14. driver.findElement(By.id("su")).click();
  15. WebElement s = driver.findElement(By.xpath("//div[@id='1']/h3/a"));
  16. s.click();
  17. //获取当前窗口句柄
  18. String win = driver.getWindowHandle();
  19. //获取所有窗口句柄
  20. Set<String>Windows = driver.getWindowHandles();
  21. //把获取到的窗口句柄放到list中
  22. List<String>allWindows = new ArrayList<String>(Windows);
  23. //切换到新打开的窗口并最大化
  24. for (int i = 0; i < allWindows.size(); i++) {
  25. if (!allWindows.get(i).equals(win)) {
  26. j = i;
  27. }
  28. }
  29. driver.switchTo().window(allWindows.get(j));
  30. driver.manage().window().maximize();

 

版权声明:本文为yogouo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/yogouo/p/11949150.html