如何使用Selenium WebDriverWait获得更有意义的失败消息/断言?

时间:2012-11-08 01:57:02

标签: scala testing selenium webdriver qa

当等待条件超时时,我收到了非常无益的消息:

Tests in error: 
    myTestName(mySuiteName): Timed out after 10 seconds waiting for              
    com.mycompany.qa.core.SeleniumWebTesting$$anon$1@6818c458

以下是 Scala 代码:

  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)")
    }
  }

2 个答案:

答案 0 :(得分:3)

您可以使用 withMessage()方法。

WebDriverWait wait = new WebDriverWait(driver, timeout);
wait.withMessage("Your desired Message");
wait.until(new ExpectedConditions(boolean));

答案 1 :(得分:0)

如果您使用scala,我们在http://code.google.com/p/driveby/

取得了巨大成功