我一直试图将BrowserMob代理传递给Sauce Labs,但没有运气。
这是我尝试过的:
-
启动代理服务器
sh browsermob-proxy -port 9090
-
启动代理
curl -X POST http://localhost:9090/proxy {"port":9091}
-
启动酱连接,传递代理服务器信息
java -jar Sauce-Connect.jar myname xxxxxx -p localhost:9091
-
运行 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);
以下帖子提供了有关如何使其工作的一般指南,但是我不断收到"代理服务器拒绝连接"错误。
我想出了答案。
-
启动酱汁连接,并传递代理服务器信息
java -jar Sauce-Connect.jar myname xxxxxx -p localhost:9091
运行上述命令会将所有请求传递到 localhost 9091 端口,您可以使用
netcat
进行确认。nc -l 9091
-
运行 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);
Java 客户机应在端口 9091 处启动代理。 与直接使用
FirefoxDriver
不同,不应在功能中设置代理。
我可能是错的,但请尝试使用其他端口(如9090
)。SauceConnect 仅根据文档代理本地主机的一些端口