【发布时间】:2012-06-04 14:25:24
【问题描述】:
我有一个这样的实用方法:
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()));
}
}
【问题讨论】:
-
我看不出捕获异常有什么问题。您正在捕获它并使用更好的信息重新抛出它,这就是您通常对重新抛出异常所做的事情。
-
没有问题 - 我在问是否有一些没有 try/catch 的更干净的方法(好的,我也可以使用 catch-exception 库)
-
就个人而言,不,我没有看到更好的解决方案,抱歉!
标签: java testing selenium webdriver