当我需要使用以下弹出窗口,关闭它并返回主窗口时,这是我使用的代码。当然,出于此答案的目的已对其进行了简化。它维护原始窗口(主窗口)的句柄,因此可以使其他窗口有所不同。
它需要一个明确的WebDriverWait,因为在开发过程中我确实遇到了问题,即在实际打开窗口之前运行代码,所以这可能不是理想的条件,
function manipulatePopUp(final WebDriver driver, final WebDriverWait wait) { final String mainWindowHandle = driver.getWindowHandle(); driver.findElement(By.id("linkThatOpensPopUp")).click(); wait.until(new ExpectedConditions<Boolean>() { @Override public Boolean apply(WebDriver d) { return (d.getWindowHandles().size() != 1); } }); for (String activeHandle : driver.getWindowHandles()) { if (!activeHandle.equals(mainWindowHandle)) { driver.switchTo().window(activeHandle); } } driver.close(); driver.switchTo().window(mainWindowHandle);}


