首页 > 解决方案 > selenium webdriver 检测 UI 弹出错误信息

问题描述

我有这个反应应用程序正在使用 selenium webdriver 进行测试。

如果我的登录错误,如何使用 selenium webdriver 检测文本?我找不到代码/弄清楚如何捕获弹出消息。'认证失败'

@Test
public void failed_login() {
    System.setProperty("webdriver.chrome.driver",
            "C:\\Users\\rahul\\Downloads\\chromedriver_win32_83\\chromedriver.exe");
    
    WebDriver driver = new ChromeDriver();
    driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
    driver.get("http://testingapp.workspez.com");
    driver.manage().window().maximize();
    WebElement username = driver.findElement(By.id("field_email"));
    WebElement password = driver.findElement(By.id("field_password"));
    WebElement login = driver.findElement(By.xpath("//*[text()='Log In']"));
    
    username.sendKeys("wrongemail@gmail.com");
    password.sendKeys("wrongpassword");
    login.click();
    try {
        Thread.sleep(2000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    driver.manage().timeouts().implicitlyWait(120, TimeUnit.SECONDS);
    String url = driver.getCurrentUrl();
    assertEquals(url, "http://testingapp.workspez.com/login");
}

在此处输入图像描述

标签: javaselenium-webdriverjunit

解决方案


您可以使用以下代码来验证是否authentication failed显示弹出窗口:

List<WebElement> popUpElement = driver.findElements(By.id("client-snackbar");
if(popUpElement.size() != 0){
  System.out.println("Pop up is Present "+popUpElement.get(0).getText());
}else{
  System.out.println("Pop up is Absent");
}

推荐阅读