測試場景:
用戶登錄后,XXX系統(tǒng)會自動彈出一個報表頁面生棍,供用戶查看颤霎。查看完成后關(guān)閉該頁面,進入另一個窗口進行任務(wù)處理。
自動化測試要求:
用戶登錄后友酱,關(guān)閉報表頁面晴音,直接進入任務(wù)處理頁面。
解決方案:
1粹污、獲取所有窗口段多,返回一個Set集合
2、獲取當前窗口
3壮吩、判斷窗口的數(shù)量是否大于1进苍,如果大于1,則循環(huán)所有窗口并切換到對應(yīng)窗口
獲取循環(huán)中窗口的標題鸭叙,如果標題為要關(guān)閉的報表頁面觉啊,則關(guān)閉窗口。否則沈贝,則記錄為當前窗口杠人。
4、循環(huán)結(jié)束后宋下,切找到任務(wù)處理頁面
5嗡善、前臺測試類調(diào)用上述方法
onlyCurrentWindow方法代碼如下:
chrome_driver = seleUtilChrome.onlyCurrentWindow("任務(wù)列表");
public String onlyCurrentWindow(){
String title = null;
Set<String> windows = this.driver.getWindowHandles();
String currentHandle = this.driver.getWindowHandle();
try {
if (windows.size() > 1) {
for (String window : windows) {
this.driver.switchTo().window(window);
this.sleep();
title = this.driver.getTitle();
if (title.equals("個人績效看板")) {
this.driver.close();
SeleniumUtil.log(log,"關(guān)閉個人績效看板");
}else{
currentHandle = window;
}
}
}
driver.switchTo().window(currentHandle);// 切換到任務(wù)列表
} catch (Exception e) {
e.printStackTrace();
}
return currentHandle;
}