2014-03-07 3 views
9

PhantomJsDriver에 대한 일부 기능을 설정하고 있습니다. 그런 다음PhantomJSDriver가 내가 설정 한 기능을 사용하지 않는 이유는 무엇입니까?

DesiredCapabilities caps = new DesiredCapabilities(); 
caps.setJavascriptEnabled(true); 
caps.setCapability("cssSelectorsEnabled", false); 
caps.setCapability("applicationCacheEnabled", true); 
caps.setCapability("acceptSslCerts",true); 
caps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,phantomJsPath); 
this.driver = new PhantomJSDriver(caps); 

, 나는 드라이버가 사용하는 어떤 기능을 확인하십시오

System.out.println(driver.getCapabilities()); 

출력 :

Capabilities [{ 
platform=XP, 
acceptSslCerts=false, 
javascriptEnabled=true, 
browserName=phantomjs, 
rotatable=false, 
driverVersion=1.1.0, 
locationContextEnabled=false, 
version=1.9.7, 
cssSelectorsEnabled=true, 
databaseEnabled=false, 
handlesAlerts=false, 
browserConnectionEnabled=false, 
proxy={proxyType=direct}, 
nativeEvents=true, 
webStorageEnabled=false, 
driverName=ghostdriver, 
applicationCacheEnabled=false, 
takesScreenshot=true}] 

그것은 보여줍니다

cssSelectorsEnabled=true, 
applicationCacheEnabled=false, 
acceptSslCerts=false 

왜 드라이버가없이 실행 내가 설정 한 기능은?

+0

나는 동일한 문제가 있습니다. acceptSslCerts = true로 설정하면 작동하지 않습니다. – casper

답변

17

PhantomJS는

의 명령 줄에 대한 자세한 내용은
static ArrayList<String> cliArgsCap = new ArrayList<String>(); 
capabilities = DesiredCapabilities.phantomjs(); 
cliArgsCap.add("--web-security=false"); 
cliArgsCap.add("--ssl-protocol=any"); 
cliArgsCap.add("--ignore-ssl-errors=true"); 
capabilities.setCapability("takesScreenshot", true); 
capabilities.setCapability(
    PhantomJSDriverService.PHANTOMJS_CLI_ARGS, cliArgsCap); 
capabilities.setCapability(
    PhantomJSDriverService.PHANTOMJS_GHOSTDRIVER_CLI_ARGS, 
     new String[] { "--logLevel=2" }); 
this.driver = new PhantomJSDriver(capabilities); 

, 당신은 phantomjsdriver-1.1 나는이를 얻기 위해 다음과 인수를 전달했다 으로 http://phantomjs.org/api/command-line.html

2

를 참조 할 수있는 설정 기능에 다른 메커니즘을 사용하여 일하다.

cliArgsCap.add("--web-security=no"); 
cliArgsCap.add("--ignore-ssl-errors=yes"); 
+0

이것이 다른 답변보다 나은 답변은 무엇입니까? 'cliArgsCap'이란 무엇입니까? 귀하의 대답에서 유일한 차이점은 PhantomJS에서 상호 교환 할 수있는'false'>'no'와'true'>'yes'입니다. 이것은 새로운 대답을 보증하지 않습니다. –

+3

이 기능을 작동 시키려면 phantomjsdriver-1.1을 "no"와 "yes"와 함께 사용하고 false와 true를 사용하면 작동하지 않습니다. –

관련 문제