java- 由于页面刷新 onclick,WinHandle 找不到新的 window

java- WinHandle not finding new window due to page refresh onclick

当新的 window 显示在我们当前的 Web 应用程序中时,我目前正面临一个问题。

下面是我当前用来处理新 window 的代码。查看日志时,原始window的ID正在保存但没有提取新的window。

String parentHandle = driver.getWindowHandle();
driver.findElement(By.xpath("//*[@id='someXpath']")).click();

此时会填充新的 window 并且原始页面会重新加载到新位置。 (共 2 windows)

waitVar.waitforpagetoload(); // JS method to handle page being loaded.
for (String winHandle : driver.getWindowHandles()) {
    driver.switchTo().window(winHandle); 
} 
System.out.println("Pop up is: " +winHandle);
System.out.println("Parent window is: " +parentHandle);

driver.close(); 
driver.switchTo().window(parentHandle);

当我打印出值时,我得到了父项和新项的相同字符串 window。我还尝试通过 for 循环 运行 打印出 driver.getWindowHandles 中的每个值并得到一个错误,因为它只为数组提取一个值(父 window)。我认为问题是浏览器在初始点击后重新加载。关于如何处理点击后刷新原始父 window 发现的新 window 的任何建议?谢谢!

我没有留出足够的时间来获取代码。添加了 Thread.sleep(3000) 显式等待;一切正常。 虽然不是最干净的解决方案,但它确实可以正常工作。