在UI自动化测试中,经常为需要打开多个窗口,以下两个方法分别实现了两个窗口和多个窗口间切换的功能,现分享代码如下:
package cn.migu.core;
import java.util.Iterator;
import java.util.Set;
import org.openqa.selenium.WebDriver;
import cn.migu.utils.Log4jUtil;
/**
* <Description>切换窗口操作
* @author YanLu
*
*/
public class SwitchToWindow {
private static Log4jUtil log = new Log4jUtil(TakeScreenshot.class.getName());
/**
* 切换窗口(当前窗口为2个)
* @param driver
*/
public static void changeWindow(WebDriver driver) {
String currentWindow = driver.getWindowHandle();// 获取当前窗口句柄
Set<String> handles = driver.getWindowHandles();// 获取所有窗口句柄
log.info("当前窗口数量:" + handles.size());
Iterator<String> it = handles.iterator();
while (it.hasNext()) {
if (currentWindow == it.next()) {
continue;// 跳出本次循环,继续下个循环
}
try {
WebDriver window = driver.switchTo().window(it.n