Java Can';t使用BrowserMob代理(PhantomJS)捕获HAR请求和响应
我无法使用browsermob(selenium+PhantomJS浏览器)捕获请求和响应 请参考示例代码Java Can';t使用BrowserMob代理(PhantomJS)捕获HAR请求和响应,java,selenium-webdriver,phantomjs,har,browsermob-proxy,Java,Selenium Webdriver,Phantomjs,Har,Browsermob Proxy,我无法使用browsermob(selenium+PhantomJS浏览器)捕获请求和响应 请参考示例代码 server = new BrowserMobProxyServer(); server.start(0); server.newHar("contracts"); 能力: DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setJavascriptEnabled(true); cap
server = new BrowserMobProxyServer();
server.start(0);
server.newHar("contracts");
能力:
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);
启动应用程序:
driver = new RemoteWebDriver(hubUrl,capabilities);
driver.get("http://www.google.com");
创建har文件:
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":""
}
}
我认为问题在于您没有使用
BrowserMob Proxy
作为Selenium流量的代理。
您需要将Selenium的代理(ip和端口)设置为在BrowserMob proxy
中配置的代理。
IP可能是
127.0.0.1
,因为您在本地工作,您可以使用server.getPort()
来获取BrowserMob Proxy
正在侦听的端口。您是否在capabilities
对象的任何位置设置Proxy
功能?否则,PhantomJS将不知道它需要使用代理。