zoukankan      html  css  js  c++  java
  • selenium 多窗口切换(windows)

    在web应用中,常常会遇见点击某个链接会弹出一个新的窗口,或者是相互关联的web应用 ,这样要去操作新窗口中的元素,这时就需要主机切换到新窗口进行操作。。WebDriver 提供了switchTo().window()方法可以实现在不同的窗口之间切换。

    以下代码是以新浪网为实例。通过获取句柄切换到指定窗口,并关闭窗口。当然切换到指定窗口,也可以通过元素定位等方法对元素进行操作。

    getWindowHandle():获得当前窗口句柄。
    getWindowHandles():返回的所有窗口的句柄到当前会话。
    switchTo().window():用于切换到相应的窗口,与上一节的switchTo().frame()类似,前者用于不同窗口的切
    换,后者用于不同表单之间的切换。

    public static void main(String[] args) throws InterruptedException {

    System.setProperty("webdriver.chrome.driver", "D:/chromedriver_win32/chromedriver.exe");
    ChromeOptions Options = new ChromeOptions();
    Options.addArguments("user-data-dir=C:\Users\happy\AppData\Local\Google\Chrome\User Data");
    WebDriver driver = new ChromeDriver(Options);
    driver.manage().window().maximize();
    // 窗口最大化
    driver.get("http://www.sina.com.cn/");
    driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
    // 设置元素等待时间 ,隐式等待
    String sreachHand = driver.getWindowHandle();
    // 获取当前窗口的句柄
    driver.findElement(By.linkText("体育")).click();
    // 打开新浪官网上的体育链接
    driver.findElement(By.linkText("娱乐")).click();
    // 打开新浪官网上的娱乐链接
    java.util.Set<String> Handles = driver.getWindowHandles();
    System.out.println(Handles.size() + "集合长度");
    // 获取所有窗口的句柄并将句柄放在Set集合中。
    // 以下判断是否是新浪网首页,如果是则关闭新浪网首页。
    for (String i : Handles) {
    if (i.equals(sreachHand)) {
    driver.switchTo().window(i);
    Thread.sleep(5000);
    driver.close();

    }
    }

    }

     

  • 相关阅读:
    验证授权【msdn】
    实战 Comet 应用程序开发
    ASP.NET Forms验证 实现子域名(SubDomain)共享登陆下的缺陷 [转]
    分享WordPress博客搜索引擎优化的六点经验 博客园 cnbogs
    支持支付宝(Alipay)付款的三个美国主机商
    认证,授权2
    登录代码,程序不是作文
    Google 的PageRank值对网站成功有多重要
    SQL Server 2005 Service Broker 初探 [摘抄]
    jQuerySelectors(选择器)的使用(四五、内容篇&可见性篇) cnblogs zhuan
  • 原文地址:https://www.cnblogs.com/linxinmeng/p/6940266.html
Copyright © 2011-2022 走看看