Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grid Browsermob代理如何使其与selenium网格一起工作?[爪哇]_Grid_Browsermob_Browsermob Proxy - Fatal编程技术网

Grid Browsermob代理如何使其与selenium网格一起工作?[爪哇]

Grid Browsermob代理如何使其与selenium网格一起工作?[爪哇],grid,browsermob,browsermob-proxy,Grid,Browsermob,Browsermob Proxy,我的代码中包含的内容: public BrowserMobProxy getProxy() throws UnknownHostException { if (proxy == null) { proxy = new BrowserMobProxyServer(); proxy.start(0); } return proxy; seleniumProxy = ClientUtil.createSeleniumProxy(getProxy

我的代码中包含的内容:

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

但是没有成功。

我通过使用独立的browsermob实例并通过RESTAPI连接到它,成功地解决了这个问题。您可以使用简单的GET/POST/PUT请求管理远程实例,如REST API部分所述:


您可以尝试在外部公开您的本地代理(但必须为其分配真实地址),并查看将要发生的情况。

我也遇到了同样的问题。 我使用以下堆栈:

  • BrowserMobProxy()
  • Selenoid()->这个工具是Docker中的一个Selenium Hub,对于远程驱动程序,它的工作原理与通常的Se Grid完全相同
我通过以下代码使其工作(我将关键代码加粗):


不适用于我,在浏览器中添加代理会导致显示
无internet
页面此解决方案很少在CI环境中工作,因为执行BMP的本地主机(通常是GitLab、Bambole代理等)必须可以从远程浏览器(通常是云部署的)访问。
    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);