如何在Selenium WebDriver

时间:2017-08-01 07:14:40

标签: java selenium selenium-webdriver alert

我有一个自动化场景来执行内容搜索。问题发生在搜索结果屏幕中,几乎同时出现2个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.dismiss();两次但仍然在第二个alert.dismiss();给出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

0 个答案:

没有答案