1.通過瀏覽器的句柄來操縱窗口,得到句柄的方法
public String getWindowHandle(){
String currentWindow = driver.getWindowHandle();
return currentWindow;
}
2.切換到最新的窗口
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.切換到特定的窗口
public void switchToOneWindow(String windowHandle){
driver.switchTo().window(windowHandle);
}
4.舉例:
打開頁面A,點擊A頁面的鏈接在新窗口打開頁面B,驗證B頁面后關閉之,轉回到A頁面
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操作的方法,比較簡單的
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/
