Java 如何在Selenium WebDriver中处理2警报

Java 如何在Selenium WebDriver中处理2警报,java,selenium,selenium-webdriver,alert,Java,Selenium,Selenium Webdriver,Alert,我有一个自动化场景来执行内容搜索。问题发生在搜索结果屏幕上,其中有两个Javascript警报弹出窗口几乎同时出现。我说几乎是因为弹出窗口一个接一个地出现,而不是一次出现所有窗口。我设法处理了第一个问题,但没有处理第二个问题。第二个警报处理程序代码发生NoAlertPresentException 以下是警报发生的地方: public WSSPage enterAndSearchContent(String title) { waitWSSPageLoaded();

我有一个自动化场景来执行内容搜索。问题发生在搜索结果屏幕上,其中有两个Javascript警报弹出窗口几乎同时出现。我说几乎是因为弹出窗口一个接一个地出现,而不是一次出现所有窗口。我设法处理了第一个问题,但没有处理第二个问题。第二个警报处理程序代码发生NoAlertPresentException

以下是警报发生的地方:

    public WSSPage enterAndSearchContent(String title) {
        waitWSSPageLoaded();
        waitForElementTextWithEnter(searchTextField, title);
        waitWSSPageLoaded();
        WebDriverWait wait = new WebDriverWait(driver, 10);
        wait.until(ExpectedConditions.alertIsPresent());
        Alert alert = driver.switchTo().alert();
        alert.dismiss();
        wait.until(ExpectedConditions.alertIsPresent()); //NoAlertPresentException happened here
        Alert alert2 = driver.switchTo().alert();
        alert2.dismiss();
        return PageFactory.initElements(driver, WSSPage.class);
    }
我还尝试使用
alert.discouse()
两次,但在第二次
警报时仍会给出NoAlertPresentException如以下代码所示:

    public WSSPage enterAndSearchContent(String title) {
        waitWSSPageLoaded();
        waitForElementTextWithEnter(searchTextField, title);
        waitWSSPageLoaded();
        WebDriverWait wait = new WebDriverWait(driver, 10);
        wait.until(ExpectedConditions.alertIsPresent());
        Alert alert = driver.switchTo().alert();
        alert.dismiss();
        alert.dismiss(); //NoAlertPresentException happened here
        return PageFactory.initElements(driver, WSSPage.class);
    }
当我尝试手动解除警报时,第二个警报几乎立即出现。我想问题是代码无法捕获第二个警报,因为它太快了? 这个问题有解决办法吗?多谢各位

注:
我正在使用Firefox

使用windowHandle并获取当前窗口的id。现在检查弹出窗口1并切换并关闭。使用windowHandle切换到窗口id标记为向下的窗口。现在再次检查弹出窗口2,然后切换并关闭。@santhoshkumar我按你说的做了尝试,但它无法切换到弹出窗口2。根据您的建议,它应该是主窗口中的焦点,然后将焦点切换到弹出窗口1,然后关闭。然后它应该回到主窗口的焦点,切换到弹出窗口2,关闭。发生在我身上的事情是:当它聚焦回主窗口后,它就停留了。没有切换到弹出窗口2我不知道为什么…在聚焦回主窗口(弹出窗口1已关闭)后,弹出窗口2是否可见并正确处理。我可以从我的本地计算机上查看您的完整代码吗?是的,popup2是可见的,等待处理正确。很抱歉,我恐怕不能给你,因为它涉及到许多源代码,但我真的很感激你的意图。非常感谢。在解除并切换回主窗口后。你能做一次刷新并尝试一下吗?