zoukankan      html  css  js  c++  java
  • Selenium常用API的使用java语言之14-多窗口切换

    在页面操作过程中有时候点击某个链接会弹出新的窗口, 这时就需要主机切换到新打开的窗口上进行操作。WebDriver提供了switchTo().window()方法可以实现在不同的窗口之间切换。
    以百度首页和百度注册页为例,在两个窗口之间的切换如下图。

    实现窗口切换的代码如下:

    import java.util.Set;
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
     
    public class MoreWindows {
     
      public static void main(String[] arge) throws InterruptedException{
     
        WebDriver driver = new ChromeDriver();
        driver.get("https://www.baidu.com");
     
        //获得当前窗口句柄
        String search_handle = driver.getWindowHandle();
     
        //打开百度注册窗口
        driver.findElement(By.linkText("登录")).click();
        Thread.sleep(3000);
        driver.findElement(By.linkText("立即注册")).click();
     
        //获得所有窗口句柄
        Set<String> handles = driver.getWindowHandles();
     
        //判断是否为注册窗口, 并操作注册窗口上的元素
        for(String handle : handles){
          if (handle.equals(search_handle)==false){
            //切换到注册页面
            driver.switchTo().window(handle);
            System.out.println("now register window!");
            Thread.sleep(2000);
            driver.findElement(By.name("userName")).clear();
            driver.findElement(By.name("userName")).sendKeys("user name");
            driver.findElement(By.name("phone")).clear();
            driver.findElement(By.name("phone")).sendKeys("phone number");
            //......
            Thread.sleep(2000);
            //关闭当前窗口
            driver.close();
          }
        }
        Thread.sleep(2000);
     
        driver.quit();
      }
    }
    

    在本例中所涉及的新方法如下:

    • getWindowHandle(): 获得当前窗口句柄。
    • getWindowHandles(): 返回的所有窗口的句柄到当前会话。
    • switchTo().window(): 用于切换到相应的窗口,与上一节的switchTo().frame()类似,前者用于不同窗口的切换, 后者用于不同表单之间的切换。
  • 相关阅读:
    实现 HTML页面 Table 标签分页打印
    windows定时休眠设置
    python画树
    anaconda历史版本
    枚举
    is 与 as 运算符举例
    Microsoft.ACE.OLEDB.12.0报错解决方法
    winform一个带自动完成功能的TextBox
    DWZ中整合第三方jQuery(kit日历控件)插件
    asp.net 使用NPOI,泛型反射,XML导入导出excel
  • 原文地址:https://www.cnblogs.com/zhizhao/p/11303329.html
Copyright © 2011-2022 走看看