Я могу запустить и получить заголовок ответа, используя browsermob и selenium, используя следующий код
DesiredCapabilities capabilities = new DesiredCapabilities();
BrowserMobProxy proxy = getProxyServer(); //getting browsermob proxy
Proxy seleniumProxy = getSeleniumProxy(proxy);
capabilities.setCapability(CapabilityType.PROXY, seleniumProxy);
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
WebDriver driver = new ChromeDriver(capabilities);
proxy.setHarCaptureTypes(CaptureType.REQUEST_HEADERS,CaptureType.RESPONSE_HEADERS);
proxy.newHar(); // creating new HAR
driver.get("https://www.google.com");
List<HarEntry> entries = proxy.getHar().getLog().getEntries();
for (HarEntry entry : entries) {
System.out.println(entry.getRequest().getUrl());
}
proxy.stop();
driver.close();
}
public Proxy getSeleniumProxy(BrowserMobProxy proxyServer) {
Proxy seleniumProxy = ClientUtil.createSeleniumProxy(proxyServer);
try {
String hostIp = Inet4Address.getLocalHost().getHostAddress();
seleniumProxy.setHttpProxy(hostIp + ":" + proxyServer.getPort());
seleniumProxy.setSslProxy(hostIp + ":" + proxyServer.getPort());
} catch (UnknownHostException e) {
e.printStackTrace();
Assert.fail("invalid Host Address");
}
return seleniumProxy;
}
public BrowserMobProxy getProxyServer() {
BrowserMobProxy proxy = new BrowserMobProxyServer();
proxy.setTrustAllServers(true);
proxy.start();
return proxy;
}
Но у меня возникает проблема, когда я запускаю его в контейнер докера селена
С помощью этого кода я могу открыть Chromebrowser
DesiredCapabilities capabilities =new DesiredCapabilities();
capabilities.setBrowserName("chrome");
capabilities.setPlatform(Platform.getCurrent());
BrowserMobProxy proxy = getProxyServer(); //getting browsermob proxy
Proxy seleniumProxy = getSeleniumProxy(proxy);
capabilities.setCapability(CapabilityType.PROXY, seleniumProxy);
driver = new RemoteWebDriver(new URL("http://172.17.0.3:5555/wd/hub"), capabilities);
proxy.setHarCaptureTypes(CaptureType.REQUEST_HEADERS, CaptureType.RESPONSE_HEADERS);
proxy.newHar();
driver.get("https://www.google.com");
Но его показывает
Нет интернета. Что-то не так с прокси-сервером или неверный адрес.
Может кто-нибудь знает, как запустить это в док-контейнере селена. Спасибо заранее за вашу помощь.