如何使用Java中的Selenium WebDriver检查弹出窗口是否打开

时间:2017-05-12 11:30:20

标签: java selenium

我正在尝试检查我要打开的弹出窗口是否已打开。

我已经检查了一些问题答案,如

  

How would you check if a popup window exists using selenium webdriver?

但是,nothings帮助解决了这个问题。

在这里,首先我点击登录按钮打开登录窗口。

driver.findElement(By.xpath("//a[@id='login_btn']")).click(); // Click Login Button

login

我甚至试过getPageSource(),但似乎没有用。

任何形式的帮助都将受到赞赏。

提前致谢。 :)

2 个答案:

答案 0 :(得分:2)

如果它是原生浏览器提醒(=弹出窗口),您可以执行以下操作:

try{
    driver.switchTo().alert();
    // If it reaches here, it found a popup
} catch(NoALertPresentException e){}

您实际处理的内容是iframe,您可以在获取" iframe"的属性值后执行以下操作:属性:

driver.switchTo.frame("ValueOfIframe");
// Treat as normal webpage. Now in iframe scope
driver.switchTo.defaultContent(); // To return back to normal page scope

答案 1 :(得分:1)

String mwh=driver.getWindowHandle();

现在尝试通过执行某些操作打开弹出窗口:

driver.findElement(By.xpath("")).click();

Set s=driver.getWindowHandles(); //this method will gives you the handles of all opened windows

Iterator ite=s.iterator();

while(ite.hasNext())
{
    String popupHandle=ite.next().toString();
    if(!popupHandle.contains(mwh))
    {
        driver.switchTo().window(popupHandle);
        /**/here you can perform operation in pop-up window**
        //After finished your operation in pop-up just select the main window again
        driver.switchTo().window(mwh);
    }
}