Прокси-сервер Browsermob, как заставить его работать с сеткой селена? [Джава]

Что у меня есть в моем коде:

public BrowserMobProxy getProxy() throws UnknownHostException {
    if (proxy == null) {
        proxy = new BrowserMobProxyServer();
        proxy.start(0);
    }
    return proxy;

seleniumProxy = ClientUtil.createSeleniumProxy(getProxy());
caps.setCapability(CapabilityType.PROXY, seleniumProxy);

Проблема работает локально, это нормально, но запуск ее в сетке (собственной или в стеке браузера) не работает. Есть ли способ заставить его работать - прокси работает локально и слушает удаленный драйвер?

Я попытался:

proxy.start(0, InetAddress.getLocalHost());

Но безуспешно.


person nvldk    schedule 05.07.2016    source источник


Ответы (2)


Мне удалось решить эту проблему, используя автономный экземпляр browsermob и подключившись к нему через REST API. Вы можете управлять удаленным экземпляром с помощью простых запросов GET/POST/PUT, как описано в разделе REST API: https://github.com/lightbody/browsermob-proxy

ИЛИ вы можете попробовать открыть свой локальный прокси-сервер (но необходимо будет присвоить ему реальный адрес) извне и посмотреть, что произойдет.

person Mikhail    schedule 26.07.2016

Я застрял с той же проблемой. Я использую следующий стек:

У меня это работает по следующему коду (я выделяю жирным шрифтом ключевой код):

    proxy = new BrowserMobProxyServer();
    proxy.start(0);
    Proxy seleniumProxy = null;    
seleniumProxy = ClientUtil.createSeleniumProxy(proxy);
    String ipAddress = new NetworkUtils().getIp4NonLoopbackAddressOfThisMachine().getHostAddress();
    int port = proxy.getPort();
    seleniumProxy.setHttpProxy(ipAddress + ":" + port);
    DesiredCapabilities capability = DesiredCapabilities.chrome();
                    capability.setCapability(CapabilityType.PROXY, seleniumProxy);
                    driver = new RemoteWebDriver(new URL("your_selnium_hub_ip:4444/wd/hub"), capability);
person K1RU    schedule 12.04.2017
comment
У меня не работает, добавление прокси приводит к тому, что в браузере отображается No internet страница - person Jezor; 20.11.2018
comment
Это решение редко работает в средах CI, так как локальный хост, выполняющий BMP (обычно GitLab, агент Bamboo и т. д.), должен быть доступен из удаленного браузера (обычно развернутого в облаке). - person vacant78; 21.05.2020