Selenium 切换句柄

时间:2021-12-26 15:13:14

最近用了网络上别人的一段切换窗口的code每次成功了,不错,学习

// 根据Title切换新窗口
public boolean switchToWindow_Title(WebDriver driver, String windowTitle) {
boolean flag = false;
try {
String currentHandle = driver.getWindowHandle();
Set<String> handles = driver.getWindowHandles();
for (String s : handles) {
if (s.equals(currentHandle))
continue;
else {
driver.switchTo().window(s);
if (driver.getTitle().contains(windowTitle)) {
flag = true;
System.out.println("Switch to Window: " + windowTitle
+ " successfully~~~!");
break;
} else
continue;
}
}
} catch (NoSuchWindowException e) {
System.out.println("Window: " + windowTitle + " cound not find!!!"
+ e.fillInStackTrace());
flag = false;
}
return flag;
}
// 根据URL切换新窗口
public boolean switchToWindow_Url(WebDriver driver, String windowUrl) {
boolean flag = false;
try {
String currentHandle = driver.getWindowHandle();
Set<String> handles = driver.getWindowHandles();
for (String s : handles) {
if (s.equals(currentHandle))
continue;
else {
driver.switchTo().window(s);
if (driver.getCurrentUrl().contains(windowUrl)) {
flag = true;
System.out.println("Switch to Window: " + windowUrl
+ " successfully~~~!");
break;
} else
continue;
}
}
} catch (NoSuchWindowException e) {
System.out.println("Window: " + windowUrl + " cound not find!!!"
+ e.fillInStackTrace());
flag = false;
}
return flag;
}