I figured out the answer.
Start Sauce Connect, and pass proxy server information
java -jar Sauce-Connect.jar myname xxxxxx -p localhost:9091
Running the above command will pass all requests to localhost 9091 port, and you may use
netcat
to confirm.nc -l 9091
Run Java Client
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);
The Java Client should starts a proxy at Port 9091. Unlike using
FirefoxDriver
directly, proxy should not be set in capabilities.