I'm getting very unhelpful messages when it times out waiting on a condition:
Tests in error:
myTestName(mySuiteName): Timed out after 10 seconds waiting for
com.mycompany.qa.core.SeleniumWebTesting$$anon$1@6818c458
Here's the Scala code:
def pageContains(locatorType: String, content: String) {
locatorType match {
case "TagName" =>
val tag = new WebDriverWait(driver, defaultWait).until(
new ExpectedCondition[Boolean] {
// it times out on this line below, but I can't send out any assert failure or useful message
override def apply(driver: WebDriver) = driver.findElement(By.tagName(content)).isDisplayed
}
)
case _ =>
throw new UnsupportedOperationException("No valid locator strategy received (try a valid one, like class name)")
}
}
You can use withMessage() method.
WebDriverWait wait = new WebDriverWait(driver, timeout);
wait.withMessage("Your desired Message");
wait.until(new ExpectedConditions(boolean));