硒,规格和斯卡拉

时间:2010-11-26 12:40:14

标签: scala selenium specs

我正在查看使用scala规范进行selenium测试的信息或项目。 如何从我的scala规范代码中调用selenium测试?

1 个答案:

答案 0 :(得分:4)

我刚写了一些可能有帮助的代码。这还没有使用任何scala DSL for selenium。

class EnrollTest extends FlatSpec with ShouldMatchers{

  var driver = new FirefoxDriver
  driver.manage.timeouts.implicitlyWait(10, TimeUnit.SECONDS)


  val beginnersPage = BeginnersPage.open(driver)

  "Enroll button" should "open enroll page" in {
    try {
      val timeOfFirstCourse = beginnersPage.enrollForTheFirstCourse
      val enrollPage = new EnrollPage(driver)

      enrollPage.shouldBeOpen
      enrollPage.courseDetails should include(timeOfFirstCourse)
    }
    finally{
      driver.quit
    }
  }

}

页面类:

object BeginnersPage{
  val url = "http://"+System.getProperty("testUrl", "www.2ndlanguage.co.uk")+"/beginners.action"

  def open(driver : WebDriver) : BeginnersPage = {
    driver.get(url)
    new BeginnersPage(driver)
  }

}

class BeginnersPage(driver : WebDriver){
  private var firstEnrollButton: WebElement = driver.findElement(By.xpath("//div[@class='newPriceBoxRight']/a/div"))
  private var firstCourseTime: WebElement = driver.findElement(By.xpath("//div[@class='newPriceBoxLeft']//span[@id='time']"))

  def enrollForTheFirstCourse : String = {
    val time = firstCourseTime.getText
    firstEnrollButton.click
    time
  }
}

class EnrollPage(driver : WebDriver){
  def isOpen = driver.getCurrentUrl startsWith "http://www.2ndlanguage.co.uk/offer.action"
  def courseDetails = driver.findElement(By.id("courseDetailsTextArea")).getText
}