该方法用于页面操作时需要跳转到新的窗口,具体用法见代码注释:
// ===================弹出新窗口跳转方法集=====================
//参数: newWindowsTitle 为跳转目标窗口的title
public boolean toNewWindows(String newWindowsTitle) {
// String currentWindow = null;
Set<String> handles = null;
WebDriver window = null;
boolean t = false;
//该循环为遍历次数控制,当前设置为一共遍历5次,如果没有找到目标窗口,则结束遍历
for (int i = 0; i < 5; i++) {
// currentWindow = this.dr.getWindowHandle();// 获取当前窗口句柄
handles = this.dr.getWindowHandles();// 获取所有窗口句柄
Iterator<String> it = handles.iterator();
while (it.hasNext()) {
try {
window = this.dr.switchTo().window(it.next());// 切换到新窗口
} catch (TimeoutException e) {
super.rpt(window.getTitle() + " 页面加载超过50秒 不等待加载完毕 继续执行");
}
//打印到日志
super.pt("the" + i + "times search :one of titles is:"
+ window.getTitle());
if (window.getTitle().equals(newWindowsTitle)) {
//打印到日志和reportng报告日志
super.rpt("New page title is:" + window.getTitle());
t = true;
break;
}
// window.close();//关闭新窗口
}
if (t) {
break;
}
//封装的等待方法,当前为每次遍历完后等待1秒
super.threadSleep(1);
}
BrowersSize.maxBrowers(this.dr);
//如果当前的title与目标窗口title一直表示跳转成功,返回真
if(this.dr.getTitle().equals(newWindowsTitle)){
return true;
}
return false;
}