3

通过阅读http://www.scalatest.org/user_guide/using_selenium我正在尝试整合 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。最新版本可以从 org.openqa.selenium 的 com.google.common.base.Preconditions.checkState(Preconditions.java:176) 的http://code.google.com/p/chromedriver/downloads/list下载。 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) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 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 也没有启动

4

3 回答 3

5

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

于 2012-12-12T13:04:30.833 回答
0

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

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

于 2013-05-17T08:26:19.120 回答
0

或者你可以试试这个而不是从 Chrome 扩展

private val chromeDriverPath = "~/Downloads/chromedriver"
System.setProperty("webdriver.chrome.driver", chromeDriverPath)
import Chrome._
`
于 2019-02-18T16:24:47.080 回答