我一直试图将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);
following post提供了有关如何使其发挥作用的一般指导原则,但我一直在“代理服务器拒绝连接”错误。
答案 0 :(得分:6)
我想出了答案。
启动Sauce Connect,并传递代理服务器信息
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启动代理。与using FirefoxDriver
directly不同,不应在功能中设置代理。
答案 1 :(得分:0)
我可能错了,但尝试使用其他端口(例如9090
)。根据{{3}}