Как проверить, отображается ли всплывающее сообщение?

#java #selenium #selenium-webdriver #automation #ui-automation

Вопрос:

Сценарий здесь заключается в том, что я сохраняю данные, и после успешного сохранения отображается всплывающее сообщение, но если я скажу, что сохраню всплывающее сообщение как веб-элемент и проверю .isDisplayed() не будет работать, потому что я думаю, что оно будет отображаться как элемент, который в любом случае будет присутствовать в DOM, поэтому любой другой способ утвердить сохранение данных в сетке с помощью всплывающего сообщения?

Ответ №1:

Вот пример для проверки, отображается ли тост, который я использую в своем проекте:

 Assert.assertTrue(validateToastMessageAppearance("invalid Entitlement"));
 

Где validateToastMessageAppearance метод определяется как

 public boolean validateToastMessageAppearance(String message){
    waitForElementToBeVisible(String.format(toastMessage,message));
    return true;
}
 

Метод waitForElementToBeVisible определяется как:

 public boolean waitForElementToBeVisible(By.xpath(xpath)) {
    try {
    wait.until(ExpectedConditions.visibilityOfElementLocated(xpath));
    return true;
    }catch (Throwable t){
        return false;
    }
}
 

В то время toastMessage как определяется как

 public String toastMessage = toast   textElement;
 

Где

 public String toast =  "//div[contains(@class,'ToastContent')]";
 

и

 public String textElement = "//*[contains(text(),'%s')]";