Как интегрировать scalatest с селеном

Из чтения http://www.scalest.org/user_guide/using_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 на 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.scalest.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 Правильно ли я устанавливаю драйвер или в приведенном выше коде есть отдельная проблема? Хром тоже не запускается


person blue-sky    schedule 11.12.2012    source источник


Ответы (3)


Я думаю, что System.setProperty в приведенном выше коде вызывается только после создания экземпляра Chrome, то есть после появления вышеуказанной ошибки. Возможно, вам следует попробовать установить системное свойство с помощью -D.

person Chee Seng    schedule 12.12.2012
comment
как устанавливается системное свойство с помощью -D? Я не могу найти ссылку на Java? - person blue-sky; 12.12.2012

Я использовал Maven для автоматического запуска интеграционных тестов ScalaTest Selenium. Я использовал не ChromeDriver, а драйвер HtmlUnit. А с Maven вы также можете установить пользовательские свойства с помощью командной строки с «-Dxxx».

Проверьте: https://bitbucket.org/olimination/hello-scalajava/overview для пример проекта веб-приложения Maven с использованием Scala/Java.

person olibur    schedule 17.05.2013

в качестве альтернативы вы можете попробовать это вместо расширения из Chrome

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