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 操作彈窗窗口的示例,后續繼續整理相關資料,謝謝大家對本站的支持!