本文为大家讲解selenium 中如何处理弹出窗口
原理
测试页面的HTML
Java 代码
原理
在代码里, 通过 Set<String> allWindowsId = driver.getWindowHandles();
来获取到所有弹出浏览器的句柄, 然后遍历, 使用swithcto.window(newwindow_handle)方法。 就可以定位到新的窗口
测试页面的HTML
<html><head> <title>常见web ui元素操作, 及API使用</title> <script type="text/javascript"> function open_win() { window.open("http://www.cnblogs.com") } </script></head><body> <form> <input type=button value="打开窗口" onclick="open_win()"> </form> </div></body></html>
Java 代码
public static void testMultipleWindowsTitle(WebDriver driver) throws Exception { String url="E:\\StashFolder\\huoli_28@hotmail.com\\Stash\\Tank-MoneyProject\\Selenium Webdriver\\AllUIElement.html"; driver.get(url); // 获取当前窗口的句柄 String parentWindowId = driver.getWindowHandle(); System.out.println("driver.getTitle(): " + driver.getTitle()); WebElement button = driver.findElement(By.xpath("//input[@value='打开窗口']")); button.click(); Set<String> allWindowsId = driver.getWindowHandles(); // 获取所有的打开窗口的句柄 for (String windowId : allWindowsId) { if (driver.switchTo().window(windowId).getTitle().contains("博客园")) { driver.switchTo().window(windowId); break; } } System.out.println("driver.getTitle(): " + driver.getTitle()); // 再次切换回原来的父窗口 driver.switchTo().window(parentWindowId); System.out.println("parentWindowId: " + driver.getTitle()); }
附: selenium java教程 (连载中, 敬请期待)
java selenium (一) selenium 介绍
java selenium (二) 环境搭建方法一
java selenium (三) 环境搭建 基于Maven
java selenium (四) 使用浏览器调试工具
java selenium (五) 元素定位大全
java selenium (六) xpath 定位
java selenium (七) CSS 定位
java selenium (八) Selenium IDE 用法
java selenium (九) 常见web UI 元素操作 及API使用
java selenium (十) 操作浏览器
java selenium (十一) 操作弹出对话框
java selenium (十二) 操作弹出窗口
java selenium (十三) 智能等待页面加载完成
java selenium (十四) 处理Iframe 中的元素
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦