Явное ожидание WebDriver в Scala - PullRequest
2 голосов
/ 18 августа 2011

Как бы явный пример ожидания Java здесь был бы написан на Scala:

WebDriver driver = new FirefoxDriver();
driver.get("http://somedomain/url_that_delays_loading");
WebElement myDynamicElement = (new WebDriverWait(driver, 10))
  .until(new ExpectedCondition<WebElement>(){
    @Override
    public WebElement apply(WebDriver d) {
      return d.findElement(By.id("myDynamicElement"));
    }});

Ответы [ 2 ]

6 голосов
/ 18 августа 2011

Это будет выглядеть очень похоже.Некоторые типы и скобки могут быть опущены.Но пока не существует специального API Scala, который использует некоторые функции Scala, он будет выглядеть примерно так (возможно, будет добавлено больше точек):

val driver: WebDriver = new FireFoxDriver
driver.get("http://somedomain/url_that_delays_loading")
val myDynamicElement = new WebdriverWait(driver, 10).until(
  new ExpectedCondition[WebElement] {
    override def apply(d: WebDriver) = d.findElement(By.id("myDynamicElement"))
  })
0 голосов
/ 09 июля 2013

У меня есть вспомогательный класс для более короткого и чистого кода в Scala:

case class SeleniumHelper(timeOut: Int) {
  def waitFor(driver: WebDriver, f: (WebDriver) => WebElement) : WebElement = {
    new WebDriverWait(driver, timeOut).until(
     new ExpectedCondition[WebElement] {
      override def apply(d: WebDriver) = f(d)
    })
  }

  def test() = {
  val driver: WebDriver = new FirefoxDriver
  driver.get("http://www.abksystem.com")
  waitFor(driver, _.findElement(By.className("module module-Menu")))
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...