代码之家  ›  专栏  ›  技术社区  ›  kolchanov

硒、规格和鳞片

  •  4
  • kolchanov  · 技术社区  · 15 年前

    我正在寻找一个信息或一些项目硒测试与scala规范。 如何从scala规范代码中调用selenium测试?

    1 回复  |  直到 15 年前
        1
  •  4
  •   til_b    14 年前

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

    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
    }