浏览器代理如何使其与硒网格一起工作?[爪哇]



我的代码中有什么:

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

但没有成功。

我已经通过使用独立的 browsermob 实例并通过 REST API 连接到它来解决这个问题。您可以使用简单的 GET/POST/PUT 请求管理远程实例,如 REST API 部分中所述:https://github.com/lightbody/browsermob-proxy

或者,您可以尝试在外部公开您的本地代理(但有必要为其分配真实地址),看看会发生什么。

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

  • 浏览器MobProxy (https://github.com/lightbody/browsermob-proxy)
  • Selenoid (https://github.com/aandryashin/selenoid) ->这个工具是Docker中的Selenium Hub,对于远程驱动程序,它的工作方式与通常的Se Grid完全相同。

通过以下代码让它工作(我使键代码加粗):

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

相关内容

  • 没有找到相关文章

最新更新