2016-10-05 13 views
1

내가 요청 및 응답 사용 browsermob (셀레늄 + PhantomJS 브라우저)는 BrowserMob - 프록시 (PhantomJS)

샘플 코드

server = new BrowserMobProxyServer(); 
server.start(0); 
server.newHar("contracts"); 

를 참조하십시오를 캡처 할 수없는 오전을 사용하여 HAR 요청 및 응답을 캡처 할 수 없습니다 기능 :

:

DesiredCapabilities capabilities = new DesiredCapabilities(); 
capabilities.setJavascriptEnabled(true); capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); 
capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, 
    new String[] {"--web-security=false", "--ssl-protocol=any", 
        "--ignore-ssl-errors=yes"}); 
capabilities.setCapability("takeScreenshot", true); 
URL hubUrl = new URL("http://152.188.0.42:5555/wd/hub"); 
server.enableHarCaptureTypes(CaptureType.REQUEST_CONTENT, CaptureType.RESPONSE_CONTENT); 

응용 프로그램을 실행

Har har = server.getHar(); 
FileOutputStream fos = new FileOutputStream("runnowNew.har"); 
har.writeTo(fos); 

하르 위의 코드를 사용하여 생성됩니다 :

HAR 파일 만들기

{ 
    "log": 
    { 
    "version":"1.2", 
    "creator":{"name":"BrowserMob Proxy","version":"2.1.2","comment":""}, 
    "pages":[{"id":"contracts","startedDateTime":"2016-10-05T12:56:33.460+05:30","title":"contracts","pageTimings":{"comment":""},"comment":""}], 
    "entries":[], 
    "comment":"" 
    } 
} 
+1

'PROXY' 기능을'capabilities' 객체의 아무 곳에 나 설정하고 있습니까? 그렇지 않다면 PhantomJS는 프록시를 사용해야한다는 것을 모릅니다. –

답변

1

나는 문제는 당신이에 대한 프록시로 BrowserMob Proxy을 사용하지 않는 것이 생각 셀레늄 트래픽. Selenium (ip & 포트)의 프록시를 BrowserMob Proxy에 구성된 프록시로 설정해야합니다. IP는 로컬로 작업하기 때문에 127.0.0.1 일 수 있으며 server.getPort()을 사용하면 BrowserMob Proxy이 수신 대기중인 포트를 가져올 수 있습니다.