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

时间:2015-07-13 09:02:35

标签: java selenium xpath

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

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也得到相同的结果,但仍然会抛出错误。

请就此提出建议。

提前致谢。

0 个答案:

没有答案