Я пытаюсь прочитать источники страницы, пройденной во время воспроизведения селена через прокси-сервер browsermob, но я всегда получаю пустой файл har.
Selenium 3.141 browsermob-core 2.1.5 jar
Ниже мой код.
Если я установлю
Драйвер WebDriver = новый ChromeDriver (параметры); страница загружается
Драйвер WebDriver = новый ChromeDriver (возможности); страница не загружается, а возвращаемая страница не загружается
Прокси запускается правильно согласно журналам
/*******************************/
[RemoteTestNG] обнаружил TestNG версии 6.14.3
SLF4J: не удалось загрузить класс org.slf4j.impl.StaticLoggerBinder.
SLF4J: По умолчанию реализация регистратора без операции (NOP)
SLF4J: см. http://www.slf4j.org/codes.html#StaticLoggerBinder. для получения дополнительной информации.
net.lightbody.bmp.BrowserMobProxyServer@61322f9dBrowserMobProxy 59858is номер порта
Прокси (руководство, http = 10.88.16.64: 59858, ssl = 10.88.16.64: 59858) seleniumProxy
/********************************/
Любые предложения были бы полезны.
public void test() throws Exception
{
BrowserMobProxy proxy = getProxyServer(); //getting browsermob proxy
System.out.println(proxy+"BrowserMobProxy");
Proxy seleniumProxy = getSeleniumProxy(proxy);
System.out.println(seleniumProxy+"seleniumProxy");
DesiredCapabilities capabilities = new DesiredCapabilities().chrome();
capabilities.setCapability(CapabilityType.PROXY, seleniumProxy);
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
System.setProperty("webdriver.chrome.driver", "C:\\APMWS\\testmvnproject\\src\\drivers\\chromedriver76.exe");
ChromeOptions options = new ChromeOptions();
WebDriver driver = new ChromeDriver(options);
proxy.newHar(); // creating new HAR
driver.get("https://google.com");
driver.navigate().to("https://pizzahut.com"); //example
List<HarEntry> entries = proxy.getHar().getLog().getEntries();
for (HarEntry entry : entries)
{
HarRequest request = entry.getRequest();
HarResponse response = entry.getResponse();
System.out.println(request.getUrl()+" : "+response.getStatus()+","+entry.getTime()+"ms");
}
proxy.stop();
driver.close();
}
public Proxy getSeleniumProxy(BrowserMobProxy proxyServer)
{
Proxy seleniumProxy = ClientUtil.createSeleniumProxy(proxyServer);
System.out.println(seleniumProxy.getHttpProxy());
try
{
String hostIp = Inet4Address.getLocalHost().getHostAddress();
System.out.println(hostIp);
seleniumProxy.setHttpProxy(hostIp + ":" + proxyServer.getPort());
seleniumProxy.setSslProxy(hostIp + ":" + proxyServer.getPort());
System.out.println(proxyServer.getPort()+"is port number");
}
catch (UnknownHostException e)
{
e.printStackTrace();
System.out.println("invalid host");
}
return seleniumProxy;
}
public BrowserMobProxy getProxyServer()
{
BrowserMobProxy proxy = new BrowserMobProxyServer();
proxy.setTrustAllServers(true);
proxy.start(0);
return proxy;
}
Ожидаемый результат: запись трассировок, запущенных через прокси, в файл HAR
Фактический результат: прокси настроен, страница запускается, но файл HAR пуст.