selenium 中如何处理弹出窗口
阅读目录
- 原理
- 测试页面的HTML
- Java 代码
原理
在代码里, 通过 Set<String> allWindowsId = driver.getWindowHandles();
来获取到所有弹出浏览器的句柄, 然后遍历, 使用swithcto.window(newwindow_handle)方法。 就可以定位到新的窗口
测试页面的HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
< 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 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
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()); } |
以上就是关于Java selenium 操作弹窗窗口的示例,后续继续整理相关资料,谢谢大家对本站的支持!