1. package exercises;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import java.util.Set;
  6.  
  7. import org.openqa.selenium.By;
  8. import org.openqa.selenium.WebDriver;
  9. import org.openqa.selenium.chrome.ChromeDriver;
  10.  
  11. public class demo2 {
  12.  
  13. private static WebDriver dr = null ;
  14. private static Set<String> winHandels = null;
  15.  
  16. public static void main(String[] args) {
  17. System.setProperty("webdriver.chrome.driver", "D:\\selenium2\\chromedriver.exe");
  18. dr = new ChromeDriver();
  19. dr.manage().window().maximize();
  20. dr.get("https://www.baidu.com");
  21.  
  22. dr.findElement(By.id("kw")).sendKeys("selenium2");
  23. dr.findElement(By.id("su")).click();
  24. try {
  25. Thread.sleep(2000);
  26. } catch (InterruptedException e) {
  27. // TODO Auto-generated catch block
  28. e.printStackTrace();
  29. }
  30. dr.findElement(By.xpath(".//*[@id='1']/h3/a")).click();//弹出新窗口
  31. try {
  32. Thread.sleep(2000);
  33. } catch (InterruptedException e) {
  34. // TODO Auto-generated catch block
  35. e.printStackTrace();
  36. }
  37. Set<String> winHandels=dr.getWindowHandles();// 得到当前窗口的set集合
  38. List<String> it = new ArrayList<String>(winHandels); // 将set集合存入list对象
  39. dr.switchTo().window(it.get(1));// 切换到弹出的新窗口
  40. try {
  41. Thread.sleep(2000);
  42. } catch (InterruptedException e) {
  43. // TODO Auto-generated catch block
  44. e.printStackTrace();
  45. }
  46. String url=dr.getCurrentUrl();//获取新窗口的url
  47. System.out.println(url);
  48. dr.findElement(By.xpath(".//*[@id='ibm-content-wrapper']/header/div[1]/div[2]/ul/li[1]/a")).click();
  49. dr.switchTo().window(it.get(0));// 返回至原页面
  50. dr.findElement(By.xpath(".//*[@id='1']/h3/a")).click();
  51.  
  52. }
  53.  
  54. }

selenium2+java切换窗口的更多相关文章

  1. WebDriver(Selenium2) 根据新窗口title切换窗口

    http://uniquepig.iteye.com/blog/1559321 在webdriver官方的api中,切换窗口的方法提供的参数是nameOrHandle. 引用 http://uniqu ...

  2. Java中怎么切换窗口

    首先,创建一个窗口对象: eg:  JFram frame = JFrame();//创建一个窗体 frame.setVisible(true);//设置窗体可见,默认不可见 然后编写相关应用或组件… ...

  3. 《selenium2 python 自动化测试实战》(9)——切换窗口

    有时候我们点击按钮后页面会跳转到新的窗口,我们需要到新的窗口中去进行接下来的操作,这时候就需要切换窗口的操作,我们根据句柄(handle)来操作窗口之间的切换,看代码: # coding: utf-8 ...

  4. selenium 切换窗口 每次成功code

    最近用了网络上别人的一段切换窗口的code每次成功了,不错,学习 // 根据Title切换新窗口 public boolean switchToWindow_Title(WebDriver drive ...

  5. java swing窗口放置屏幕中央问题思考

    java swing窗口放置屏幕中央问题思考 以前总是尝试各种方法都没有能把组件放到屏幕中央,只能用死办法,设置绝对坐标,但这样就失去了可移植性,而且繁琐.今天仔细思考了一番,终于被我找出问题所在. ...

  6. java用户界面窗口

    java用户界面窗口 窗口框 代码如下: package Day08; import java.awt.Color;import java.awt.FlowLayout;import java.awt ...

  7. selenium切换窗口

    在做网页自动化测试的时候,难免会打开很多个网页,那么,如何在多个窗口之间切换呢? 获取窗口的唯一标识用句柄(handle)表示,因此只需要切换句柄,就可以灵活的在各窗口之间切换. 下面介绍几个方法 c ...

  8. robot切换窗口

    在用robot做自动化测试的时候,经常遇到新开窗口,需要切换窗口的情况. 两种方式来解决: (1)用robot的关键字来解决 实现窗口切换的功能 @{handlelist} List Windows ...

  9. Window 10 Alt Tap 切换窗口,设置成Windows 7风格

    升级了Windows 10 以后,切换窗口非常的难受.新版的窗口切换的图标变成了窗口预览了,这总让我一瞬间找不到要去的窗口,所以我打算切换成Windows 7 的小图标风格. Windows + R ...

随机推荐

  1. 时序图与状态图(Rose) - Windows XP经典软件系列

    以CAN转UART(串口)为例. 功能简单介绍: 当主程序收到CAN口的数据后:依据按键的不同来选择是使用CAN口发送,还是使用UART口发送. 一.图片 时序图 watermark/2/text/a ...

  2. 基于spark1.4的Spark-Sql

    Author: kwu 基于spark1.4的Spark-Sql,spark1.4.1在7月15刚公布.提供较好sql支持 1.怎样启动Spark-Sql 启动脚本例如以下 #!/usr/bin/en ...

  3. iOS 获取当前时间格式化字符串

    iOS 获取当前时间格式化字符串 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保 ...

  4. PHP设计模式之 单例模式 工厂模式 实例讲解

    单例模式又称为职责模式,它用来在程序中创建一个单一功能的访问点,通俗地说就是实例化出来的对象是唯一的.所有的单例模式至少拥有以下三种公共元素:1. 它们必须拥有一个构造函数,并且必须被标记为priva ...

  5. Android笔记之网络状态推断

    1.首先当然得在 manifest 中加入检查网络状态的权限: <uses-permission android:name="android.permission.ACCESS_NET ...

  6. oc13--pragma mark

    // // main.m // #pragma mark基本使用 // // Created by xiaomage on 15/6/18. // Copyright (c) 2015年 xiaoma ...

  7. vs2013+ffmpeg开发环境搭建【转】

    本文转载自:http://blog.csdn.net/spaceyqy/article/details/43115391 每当看到配环境,我就泪流满面,好吧,闲话不多说,进入正题. 1.去官方下载ff ...

  8. hdoj--5093--Battle ships(二分图经典建图)

    Battle ships Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Tot ...

  9. 使用 `ConfigMap` 挂载配置文件

    使用 ConfigMap 挂载配置文件 Intro 有一些敏感信息比如数据库连接字符串之类的出于安全考虑,这些敏感信息保存在了 Azure KeyVault 中,最近应用上了 k8s 部署,所以想把 ...

  10. JUC集合-BlockingQueue

    BlockingQueue 阻塞队列,支持两个附加操作. 1,在队列为空时,获取元素的线程会等待对列变为非空. 2,在队列为满时,存储元素的线程会等待对列可用. 使用场景: 生产者往对列里添加元素 消 ...