如何改进WebDriver ExpectedCondition的错误消息?

Tom*_*ski 2 java testing selenium webdriver

我有一个像这样的实用方法:

public void verifyTitle(int secsToWait) {
    new WebDriverWait(driver, secsToWait)
            .until(ExpectedConditions.titleIs(title));
}
Run Code Online (Sandbox Code Playgroud)

当它失败时,消息是:

org.openqa.selenium.TimeoutException

等待标题后2秒钟超时:此处有一些标题构建信息:版本:'2.2.1',修订版:'16551',时间:'2012-04-11 21:42:35'系统信息:os.名称:'Linux',os.arch:'i386',os.version:'3.0.0-16-generic',java.version:'1.7.0_04'驱动程序信息:driver.version:unknown

我找不到用于提供更好的错误消息的API.我想拥有的是:

等待标题2秒后超时:这里有一些标题(但标题是:其他一些标题)

我可以使用如下所示的try/catch来实现,但也许还有其他选择吗?

public void verifyTitle(int secsToWait) {
    try {
        new WebDriverWait(driver, secsToWait)
                .until(ExpectedConditions.titleIs(title));
    }
    catch (TimeoutException e) {
        throw new AssertionError(String.format("Expected page title [%s] but was [%s]", title, driver.getTitle()));
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 5

使用withMessage()方法:

WebDriverWait wait = new WebDriverWait(driver, timeout);
wait.withMessage("Any message you want");
wait.until(ExpectedConditions.titleIs(title));
Run Code Online (Sandbox Code Playgroud)