2016-07-05 5 views
0

Что я имею в моем коде:Прокси-сервер Browsermob, как заставить его работать с сеткой селена? [Java]

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); 

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

Я пробовал:

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

Но без успеха.

ответ

0

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

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

0

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

я получаю это работает следующим кодом (осмелюсь код ключа):

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);