2014-11-11 9 views
0

을 덮어 :게브 나는 다음과 같은 방법으로 JVM 특성을 지정하는 것입니다 Gradle을 사용하여 내 테스트를 실행 해요 웹 드라이버

-Dgeb.env=dev -Dgeb.driver=org.openqa.selenium.htmlunit.HtmlUnitDriver 

이 드라이버를 설정하고 게브 설정 스크립트에서 환경을 구성합니다. 환경 속성에서 HtmlUnit을 지정한 후에 JavaScript를 활성화하고 싶습니다.

if (System.getProperty("geb.driver")=="org.openqa.selenium.htmlunit.HtmlUnitDriver") { 
    driver = { 
     println "Setting JavaScript" 
     def driver = new HtmlUnitDriver() 
     driver.setJavascriptEnabled(true) 
     driver 
    } 
} 
: 일반적인하기 위해, 나는 게브의 설정 스크립트에 다음 코드를 퍼팅 시도

(나는 모든 테스트의 setup() 블록 드라이버 설정에 관심이 아니에요)를 설정 스크립트에서 드라이버를 덮어 쓰려면

이 메시지를 출력하지만 테스트가 실패로 인해

java.lang.UnsupportedOperationException: Javascript is not enabled for this HtmlUnitDriver instance 
+0

http://stackoverflow.com/q/20095893/2504101 – olyv

+0

감사합니다 @olyv하지만 제 경우에는 HtmlUnit 잘 작동합니다. 필자는 크롬, 파이어 폭스, 즉 phantomjs (속성에 클래스 이름 지정)와 같은 모든 드라이버 에서처럼 설정했습니다. 하지만 안타깝게도 htmlunit은 초기화 과정에서 기본적으로 자바 스크립트를 설정하지 않습니다. – mordka

답변

1

나는 조금 당신이 Setting JavaScript이 인쇄보고하지만 발생하면 드라이버의 폐쇄로 인해 호출되지 않는다는 것입니다 있다는 것을 놀랐어요 당신이 경우를 사용하십시오. 10 시스템 속성을 사용하면 Geb는 내부적으로 드라이버를 생성합니다.에서 env를 사용하여 드라이버를 만들거나 geb.driver과 다른 시스템 속성을 사용하여 지정된 드라이버 impl을 사용하고 드라이버 만들기를 직접 관리하는 것이 좋습니다.

+0

네 말이 맞아, Geb 소스 코드에서 그 일을 담당하는 곳을 발견했다 :'properties.getProperty ("geb.driver")? : readValue ("driver", null)'이걸 해결하기로 결정했다. 빈'geb.driver' 속성과 Geb 설정 스크립트에서 클로저를 사용하여 드라이버를 설정합니다. 이렇게하면 HtmlUnit을 제외한 모든 드라이버에 대해'geb.driver '를 설정할 수 있습니다. – mordka