欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > Java的Selenium的特殊元素操作与定位之window切换

Java的Selenium的特殊元素操作与定位之window切换

2025/4/6 17:05:09 来源:https://blog.csdn.net/skjdnn/article/details/147017892  浏览:    关键词:Java的Selenium的特殊元素操作与定位之window切换

当你要操作另外一个窗口页面的元素时,一定要注意先切换窗口

切换方式:传入要操作窗口的name或者句柄handle

driver.switchTo.window(nameOrHandle);

如何获取到窗口的句柄

  • driver.getWindowHandle();//获取当前操作窗口的句柄
  • driver.getWindowHandles();//获取测试时打开的所有窗口句柄

没有切换句柄的代码

chromeDriver.get("D:\\svn lemon\\数学ppt\\yy\\录制视频\\Web自动化引流视频\\练习素村\\window\\\a.html");
chromeDriver.findElement(By.id("aa")).sendKeys("这是第一个窗口");
System.out.println("跳转前的窗口句柄:" + chromeDriver.getWindowHandle());
Thread.sleep(2000);
// 切换到B窗口
chromeDriver.findElement(By.id("bb")).click();
Thread.sleep(2000);
System.out.println("跳转后的窗口句柄:" + chromeDriver.getWindowHandle());
// 此时,尽管页面已经跳转到了B窗口,但是句柄还是在A窗口中,所以你操作的还是A窗口

 切换句柄的代码

// 打开A窗口的URL
chromeDriver.get("http://yourwebsite.com/la.html");// 执行一些操作,比如输入文本
chromeDriver.findElement(By.id("aa")).sendKeys("这是第一个窗口");// 打印当前窗口句柄
System.out.println("跳转前的窗口句柄:" + chromeDriver.getWindowHandle());// 等待页面加载
Thread.sleep(2000);// 点击链接或按钮,打开B窗口
chromeDriver.findElement(By.id("bb")).click();// 等待B窗口加载
Thread.sleep(2000);// 获取所有窗口的句柄
Set<String> handles = chromeDriver.getWindowHandles();// 遍历所有窗口句柄,找到B窗口的句柄
for (String handle : handles) {// 切换到当前遍历到的窗口句柄对应的窗口chromeDriver.switchTo().window(handle);// 检查当前窗口的URL是否为B窗口的URLif (chromeDriver.getCurrentUrl().contains("b.html")) {// 如果URL包含"b.html",说明找到了B窗口,跳出循环break;}
}// 现在chromeDriver已经切换到了B窗口,可以对B窗口的元素进行操作
chromeDriver.findElement(By.id("bb")).sendKeys("这是第二个窗口");

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词