I'm looking an info or some project for selenium testing with scala specs. How can I call selenium tests from my scala specs code?
Asked
Active
Viewed 2,077 times
4
-
So far you've only written a statement. Perhaps try and word it as a question. – leonm Nov 28 '10 at 04:01
-
what do you want to know about Scala and Selenium? – haroonzone Nov 26 '10 at 20:57
-
I want to call selenium tests from my scala specs code. – kolchanov Nov 27 '10 at 10:13
1 Answers
4
I just wrote some code which might be of help. This isn't using any scala DSL for selenium yet.
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
}
}
}
And the page classes:
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
}

piotrga
- 1,243
- 12
- 12