просто внимательно посмотрите код,
System.out.println("current handles"+driver.getWindowHandle());
driver.close();
System.out.println("current handles"+driver.getWindowHandle());
driver.switchTo().window(parent);
похоже, что вы вызываете switchTo (). Window (parent) после закрытия драйвера.
driver.close () Этот метод закрываетокно браузера, на котором установлен фокус.
Возможно, это проблема, которую вы пытаетесь закрыть дочерним браузером, но это может привести к ложному закрытию родительского элемента или из-за некоторых действий, которые они могут автоматически закрыть.используйте только когда открыто несколько окон браузера.
не закрывайте драйвер перед вызовом switchTo ().
Я надеюсь, что это может сработать для вас,
System.out.println("current handles"+driver.getWindowHandle());
driver.switchTo().window(parent);
System.out.println("current handles"+driver.getWindowHandle());
driver.close();
базовым способом,
Вы можете использовать набор для хранения, вести запись и итератор для его итерации,
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("(//a[@href='javascript:submitExport()'])[5]"))).click()
Set <String> handles =driver.getWindowHandles(); // take all window info
Iterator<String> it = handles.iterator();
String parent = it.next(); // store
String child = it.next(); // store
driver.switchTo().window(child); // switching
driver.close(); // close child window
driver.switchTo().window(parent); // switching
driver.quit(); // close