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 操作弹窗窗口的示例,后续继续整理相关资料,谢谢大家对本站的支持!