我有这样的实用方法:

public void verifyTitle(int secsToWait) {
    new WebDriverWait(driver, secsToWait)
            .until(ExpectedConditions.titleIs(title));
}


失败时,消息为:


  org.openqa.selenium.TimeoutException
  
  等待标题2秒钟后超时:此处有一些标题
  内部版本信息:版本:“ 2.2.1”,修订版:“ 16551”,时间:“ 2012-04-11”
  21:42:35'系统信息:os.name:'Linux',os.arch:'i386',os.version:
  '3.0.0-16-generic',java.version:'1.7.0_04'驱动程序信息:
  driver.version:未知


我找不到提供更好的错误消息的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()));
    }
}

最佳答案

使用withMessage()方法:

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

07-24 09:18