从阅读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也无法启动
答案 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._
`