標籤:blog class code java ext c
1.通過瀏覽器的控制代碼來操縱視窗,得到控制代碼的方法
?
| 1 2 3 4 |
public String getWindowHandle(){ String currentWindow = driver.getWindowHandle(); return currentWindow; } |
2.切換到最新的視窗
?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public void switchToNewWindow(){ //得到當前控制代碼 String currentWindow = driver.getWindowHandle(); //得到所有視窗的控制代碼 Set<String> handles = driver.getWindowHandles(); //排除當前視窗的控制代碼,則剩下是新視窗 Iterator<String> it = handles.iterator(); while(it.hasNext()){ if(currentWindow == it.next()) continue; driver.switchTo().window(it.next()); } } |
3.切換到特定的視窗
?
| 1 2 3 |
public void switchToOneWindow(String windowHandle){ driver.switchTo().window(windowHandle); } |
4.舉例:
開啟頁面A,點擊A頁面的連結在新視窗開啟頁面B,驗證B頁面後關閉之,轉回到A頁面
?
| 1 2 3 4 5 6 7 8 9 10 11 12 |
open("URLA");//開啟頁面A String w1 = getWindowHandle(); //得到頁面A的控制代碼 assertTrue(isElementPresent("//*[contains(.,‘歡迎來到‘)]"),"首頁開啟失敗"); //校正A頁面元素 stepInfo("3.點選連結"); clickByLink("URLB"); switchToNewWindow();//切換到頁面B assertTrue(isElementPresent("//*[contains(.,‘您好,歡迎來到‘)]"),"開啟失敗"); close();//關閉頁面B switchToOneWindow(w1); //返回A |
註:上面的open, clickByLink, close都是封裝了webDriver操作的方法,比較簡單的
?
| 1 2 3 4 5 6 7 8 9 10 11 12 |
public void open(String url){ driver.get(url); } public void clickByLink(String text){ driver.findElement(By.linkText(text)).click(); } public void close(){ driver.close(); } |
歡迎光臨嬌嬌家的美衣閣 http://shop105984718.taobao.com/