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