将BrowserMob代理传递给Sauce Labs - "代理服务器拒绝连接"错误

Min*_*gyu 6 java proxy selenium saucelabs browsermob

我一直试图将BrowserMob代理传递给Sauce Labs,但没有运气.

这是我尝试过的:

  • 启动代理服务器

    sh browsermob-proxy -port 9090
    
    Run Code Online (Sandbox Code Playgroud)
  • 启动代理

    curl -X POST http://localhost:9090/proxy
    {"port":9091} 
    
    Run Code Online (Sandbox Code Playgroud)
  • 启动酱连接,并传递代理服务器信息

    java -jar Sauce-Connect.jar myname xxxxxx -p localhost:9091
    
    Run Code Online (Sandbox Code Playgroud)
  • 运行Java客户端

    ProxyServer proxyServer = new ProxyServer(9091);
    proxyServer.start();    
    
    Proxy proxy = proxyServer.seleniumProxy();
    DesiredCapabilities capabillities = DesiredCapabilities.firefox();
    capabillities.setCapability(CapabilityType.PROXY, proxy);
    capabillities.setCapability("version", "5");
    capabillities.setCapability("platform", Platform.XP);
    this.driver = new RemoteWebDriver(
            new URL("http://myname:xxxxxx@ondemand.saucelabs.com:80/wd/hub"),
            capabillities);
    
    Run Code Online (Sandbox Code Playgroud)

下面的帖子提供了关于如何使它工作的一般指导线,但我不断收到"代理服务器拒绝连接"的错误.

Min*_*gyu 6

我想出了答案.

  • 启动Sauce Connect,并传递代理服务器信息

    java -jar Sauce-Connect.jar myname xxxxxx -p localhost:9091
    
    Run Code Online (Sandbox Code Playgroud)

    运行上面的命令会将所有请求传递给localhost 9091端口,您可以使用netcat确认.

    nc -l 9091
    
    Run Code Online (Sandbox Code Playgroud)
  • 运行Java客户端

    ProxyServer proxyServer = new ProxyServer(9091);
    proxyServer.start();    
    
    Proxy proxy = proxyServer.seleniumProxy();
    DesiredCapabilities capabilities = DesiredCapabilities.firefox();
    // DO NOT set proxy for RemoteWebDriver
    // capabilities.setCapability(CapabilityType.PROXY, proxy);
    capabilities.setCapability("version", "5");
    capabilities.setCapability("platform", Platform.XP);
    this.driver = new RemoteWebDriver(
            new URL("http://myname:xxxxxx@ondemand.saucelabs.com:80/wd/hub"),
            capabillities);
    
    Run Code Online (Sandbox Code Playgroud)

    Java客户端应在端口9091启动代理.与直接使用FirefoxDriver不同,不应在功能中设置代理.