Java 如何处理selenium webdriver中的嵌套弹出窗口

Java 如何处理selenium webdriver中的嵌套弹出窗口,java,selenium,xpath,Java,Selenium,Xpath,下面是切换到第一个弹出窗口的代码: String parentWindowHandler = driver.getWindowHandle(); String subWindowHandler = null; Set<String> handles = driver.getWindowHandles(); Iterator<String> iterator = handles.iterator(); while (iterator.hasNext()) {

下面是切换到第一个弹出窗口的代码:

String parentWindowHandler = driver.getWindowHandle(); 

String subWindowHandler = null;

Set<String> handles = driver.getWindowHandles(); 

Iterator<String> iterator = handles.iterator();

while (iterator.hasNext()) {

subWindowHandler = iterator.next();

 }

driver.switchTo().window(subWindowHandler);

driver.findelement(By.xpath("<xpath of the element>")).click();
这些元素不是iframe的一部分,因此无法切换到iframe。我尝试了很多使用xpath的方法,使用了浏览器提供的完整xpath,还使用了我自己编写的xpath,这也给出了相同的结果,但仍然会抛出一个错误

请就此提出建议


提前感谢。

请参阅此链接:。希望对您有所帮助。@Adarsh Kumar-在获取驱动程序句柄之前的第一部分代码中,您没有执行任何打开/生成新窗口的操作(单击任何链接、按钮等)。在这种情况下,您将始终仅在Set handles=driver.getWindowHandles()中获取父窗口句柄;。所以,通过切换窗口,您不会实现任何目标,因为它将指向同一父窗口。请重新访问您的代码并进行验证。尝试打印窗口句柄以进行验证。
parentWindowHandler = driver.getWindowHandle();

subWindowHandler = null;

handles = driver.getWindowHandles(); 

iterator = handles.iterator();

while (iterator.hasNext()) {

subWindowHandler = iterator.next();

 }

driver.switchTo().window(subWindowHandler);

driver.findElement(By.xpath("<xpath of the element>")).click();

driver.switchTo().window(parentWindowHandler);

driver.findelement(By.xpath("<xpath of element>").click();

driver.switchTo().window(parentWindowHandler);
org.openqa.selenium.ElementNotVisibleException: Cannot click on element