selenium 多窗口切换的实现(windows)

作者:小白测试 时间:2021-08-17 03:58:54 

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

}
}

}

来源:https://www.cnblogs.com/linxinmeng/p/6940266.html

标签:selenium,多窗口
0
投稿

猜你喜欢

  • ASP状态封装类Cache、Cookie & Session

    2008-05-11 19:33:00
  • Python之Pygame的Draw绘图

    2022-11-29 18:51:18
  • Python+Pygame实现神庙逃亡游戏

    2022-06-12 16:26:28
  • python的内存管理和垃圾回收机制详解

    2021-07-30 14:18:05
  • 基于PHP+MySQL的聊天室设计

    2023-11-22 19:26:25
  • Redux saga异步管理与生成器详解

    2023-07-24 02:53:52
  • 详解Python中的Lock和Rlock

    2023-08-11 18:35:20
  • 将以用户为中心的设计嵌入产品设计和开发流程

    2009-08-11 14:27:00
  • 数据分页显示按钮,自动获取url链接

    2009-06-22 12:59:00
  • python利用有道翻译实现"语言翻译器"的功能实例

    2021-08-21 02:47:38
  • python用opencv将标注提取画框到对应的图像中

    2023-01-18 21:10:16
  • python flask框架实现重定向功能示例

    2022-01-16 07:14:51
  • 使用TensorFlow搭建一个全连接神经网络教程

    2023-01-10 10:59:20
  • 使用 XML 文件记录操作日志

    2008-09-05 17:13:00
  • 陌生网页交互行为分析(1)——奇怪的关闭按钮

    2009-01-08 12:22:00
  • python如何正确使用yield

    2023-09-29 16:57:05
  • python面向对象版学生信息管理系统

    2022-07-23 02:16:57
  • Python yield 使用方法浅析

    2023-03-30 11:15:18
  • 基于Django signals 信号作用及用法详解

    2021-08-01 10:59:52
  • 编码问题引起的折腾

    2009-07-03 12:43:00
  • asp之家 网络编程 m.aspxhome.com