如何整合scalatest与硒

时间:2012-12-11 12:00:10

标签: scala selenium scalatest

从阅读http://www.scalatest.org/user_guide/using_selenium开始,我试图整合硒和硒; scalatest selenium DSL。

以下是我正在使用的代码:

class BlogSpec extends FlatSpec with ShouldMatchers with Chrome {


    System.setProperty("webdriver.chrome.driver", "C:\\selenium-drivers\\chromedriver.exe"); 
    val host = "http://www.google.com"

    go to (host)
    title should be ("Awesome Blog")

}

但是我收到了这个错误:

  

* RUN ABORTED * java.lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver.chrome.driver系统设置   属性;有关更多信息,请参阅   http://code.google.com/p/selenium/wiki/ChromeDriver。最新的   版本可以从中下载   http://code.google.com/p/chromedriver/downloads/list at   com.google.common.base.Preconditions.checkState(Preconditions.java:176)   在   org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:118)   在   org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:61)   在   org.openqa.selenium.chrome.ChromeDriver。(ChromeDriver.java:107)   在org.scalatest.selenium.Chrome $ class。$ init $(WebBrowser.scala:3756)
  在BlogSpec。(BlogSpec.scala:12)at   sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)   在   sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)   在   sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)   在java.lang.reflect.Constructor.newInstance(Constructor.java:513)
  ...

驱动程序确实存在于C:\\selenium-drivers\\chromedriver.exe我是否正确设置驱动程序或上述代码中是否存在单独的问题? Chrome也无法启动

3 个答案:

答案 0 :(得分:4)

我认为上述代码中的System.setProperty只有在Chrome实例化后才会被调用,这意味着在抛出上述错误之后。也许您应该尝试使用-D设置系统属性。

答案 1 :(得分:0)

我已经使用Maven自动运行ScalaTest Selenium集成测试。我没有使用ChromeDriver,而是使用了HtmlUnit驱动程序。使用Maven,您还可以通过命令行使用" -Dxxx"设置自定义属性。

查看:https://bitbucket.org/olimination/hello-scalajava/overview,了解使用Scala / Java的Maven webapp项目示例。

答案 2 :(得分:0)

或者,您可以尝试此操作,而不是从Chrome扩展

private val chromeDriverPath = "~/Downloads/chromedriver"
System.setProperty("webdriver.chrome.driver", chromeDriverPath)
import Chrome._
`