如何验证是不是显示 toast 消息?

Posted

技术标签:

【中文标题】如何验证是不是显示 toast 消息?【英文标题】:How to verify if toast message is displayed?如何验证是否显示 toast 消息? 【发布时间】:2021-11-06 17:09:35 【问题描述】:

这里的场景是我正在保存数据,成功保存后会显示一条 toast 消息,但如果我说将 toast 消息保存为 WebElement 并验证 .isDisplayed() 将不起作用,因为我认为它会是显示为元素无论如何都会出现在 DOM 中,所以还有其他方法可以使用 toast 消息断言数据保存在网格中吗?

【问题讨论】:

【参考方案1】:

这是一个验证我在项目中使用的 toast 显示的示例:

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')]";

【讨论】:

以上是关于如何验证是不是显示 toast 消息?的主要内容,如果未能解决你的问题,请参考以下文章

报告服务器不工作显示错误消息“验证是不是已授予足够的权限”如何解决?

Android 12.0 Toast消息框上限为两行文本(超出显示省略号)并且在文本左边显示应用图标

Android 12.0 Toast消息框上限为两行文本(超出显示省略号)并且在文本左边显示应用图标

在进行第二个活动之前验证电子邮件地址

一次显示验证消息(验证摘要)而不是逐个jqgrid?

Android:MVVM 是不是可以显示来自 ViewModel 的消息(toast/snackbar 等)