【发布时间】:2019-09-16 11:21:45
【问题描述】:
尝试在某些测试页面localhost:8000 上捕获 http 标头,而 HAR 文件似乎在 entry 部分中不包含任何内容。
我的代码:
BrowserMobProxyServer proxy = new BrowserMobProxyServer();
proxy.start(0);
Proxy seleniumProxy = ClientUtil.createSeleniumProxy(proxy);
seleniumProxy.setSslProxy("trustAllSSLCertificates");
try {
String hostIp = Inet4Address.getLocalHost().getHostAddress();
seleniumProxy.setHttpProxy(hostIp + ":" + proxy.getPort());
seleniumProxy.setSslProxy(hostIp + ":" + proxy.getPort());
} catch (UnknownHostException e) {
e.printStackTrace();
}
WebDriverManager.chromedriver().setup();
DesiredCapabilities seleniumCapabilities = new DesiredCapabilities();
seleniumCapabilities.setCapability(CapabilityType.PROXY, seleniumProxy);
seleniumCapabilities.setCapability(CapabilityType.SUPPORTS_JAVASCRIPT, true);
ChromeOptions options = new ChromeOptions();
options.addArguments("--ignore-certificate-errors");
options.addArguments("--user-data-dir=temp");
options.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
options.merge(seleniumCapabilities);
webDriver = new ChromeDriver();
proxy.enableHarCaptureTypes(CaptureType.REQUEST_CONTENT, CaptureType.RESPONSE_CONTENT);
proxy.setHarCaptureTypes(CaptureType.REQUEST_HEADERS, CaptureType.RESPONSE_HEADERS);
proxy.enableHarCaptureTypes(CaptureType.REQUEST_HEADERS,CaptureType.RESPONSE_HEADERS);
proxy.enableHarCaptureTypes(CaptureType.REQUEST_CONTENT, CaptureType.RESPONSE_CONTENT);
driver.get("http://localhost:8000")
proxy.newHar("Test");
http://localhost:8000 打开时,我可以在console>networks 选项卡中看到 8 个项目
然而 har 文件是:
{"log":{"version":"1.2","creator":{"name":"BrowserMob Proxy","version":"2.1.4","comment":""},"pages":[{"id":"Test","startedDateTime":"2019-09-16T11:06:02.020Z","title":"Test","pageTimings":{"comment":""},"comment":""}],"entries":[],"comment":""}}
翻遍了无数页面,看起来所有其他人都只有 http 和 headless 的问题。
【问题讨论】:
标签: java selenium browsermob-proxy