下面是切换到第一个弹出窗口的代码:
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();
下面是进入另一个弹出窗口的代码,该窗口也在我刚刚打开的窗口内,在我点击元素后出现----&gt;
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
元素也不是iframe的一部分,也可以切换到iframe。我已经尝试了很多方法来使用xpath,使用浏览器给出的完整xpath并使用我自己编写的xpath也得到相同的结果,但仍然会抛出错误。
请就此提出建议。
提前致谢。