我用Google搜索并查看此网站以供参考,但我遇到的所有答案都没有提供切换到特定窗口的保证方式。
我正在使用Java与Selenium,我试图找到一种保证在两个窗口之间切换的方法(第二个窗口来自点击产生弹出窗口的链接)。
driver.getWindowHandles()
创建一个Set对象,由于Set接口不提供任何排序保证,我将如何切换到特定窗口?
我现在拥有的是:
public static void switchToPopUpWindow(By by) {
driver.findElement(by).click();
Set<String> handles = driver.getWindowHandles();
if (handles.size() > 1) {
for (String currentWindow : handles) {
driver.switchTo().window(currentWindow);
}
} else {
logger.info("There is only one window open...");
}
}
然而,由于订购无法保证,它不会总是落在我想要的窗口上。如何保证切换到弹出窗口?
答案 0 :(得分:0)
要切换到第二个窗口,请使用与当前窗口不同的句柄切换:
public static void switchToPopUpWindow(By by) {
driver.findElement(by).click();
String currentHandle = driver.getWindowHandle();
Set<String> handles = driver.getWindowHandles();
for (String handle : handles) {
if (!handle.equals(currentHandle)) {
driver.switchTo().window(handle);
return;
}
}
logger.info("There is only one window open...");
}