Selenium 不显示警报

Selenium 不显示警报,selenium,selenium-webdriver,alert,Selenium,Selenium Webdriver,Alert,我的测试检查用户是否可以登录到该站点。 我编写了一个代码来发出警报,但在catch中显示部分。 我试图在没有try和catch的情况下编写警报,但显示了一个错误 如何在没有的情况下编写警报,尝试和捕获并显示警报(测试通过) 这是我的代码: public void getMessage() { //Verify that is message preview try { WebDriverWait wait = new WebDriverWait(d

我的测试检查用户是否可以登录到该站点。 我编写了一个代码来发出警报,但在
catch
中显示部分。 我试图在没有
try
catch
的情况下编写警报,但显示了一个错误

如何在没有
的情况下编写警报,尝试
捕获
并显示警报(测试通过)

这是我的代码:

public void getMessage() {
        //Verify that is message preview
        try {
        WebDriverWait wait = new WebDriverWait(driver, 5);
        wait.until(ExpectedConditions.alertIsPresent());
        Alert alert = driver.switchTo().alert();
        System.out.println(alert.getText());
        alert.accept();
        Assert.assertTrue(alert.getText().contains("ERROR: Invalid login credentials."));
        } catch (Exception e) {
        System.out.println("Alert is not displayed");
        }

由于您已确认该对话框不是真正的JS警报对话框,因此您将无法使用
警报
。好消息是,它是HTML,就像页面的任何其他部分一样,因此您可以只刮除包含错误文本的元素。

那么问题是什么?我猜警报是一个HTML对话框,而不是JS警报。当警报弹出时,右键单击它。如果您获得右键单击上下文菜单并可以进行检查,那么它是基于HTML的,而不是警报。是的,这是HTML

错误:登录凭据无效。

public void getMessage() {
        //Verify that is message preview
        try {
        WebDriverWait wait = new WebDriverWait(driver, 5);
        wait.until(ExpectedConditions.alertIsPresent());
        Alert alert = driver.switchTo().alert();
        System.out.println(alert.getText());
        alert.accept();
        Assert.assertTrue(alert.getText().contains("ERROR: Invalid login credentials."));
        } catch (Exception e) {
        System.out.println("Alert is not displayed");
        }