我的代码中包含的内容:
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);
问题是在本地运行它很好,但在网格上运行它(自己或者browserstack)它不能正常工作。有没有办法让它工作 - 代理在本地运行并监听远程驱动程序?
我试过了:
proxy.start(0, InetAddress.getLocalHost());
但没有成功。
答案 0 :(得分:0)
我设法通过使用独立的browsermob实例并通过REST api连接到它来解决这个问题。您可以使用简单的GET / POST / PUT请求管理远程实例,如REST API部分所述:https://github.com/lightbody/browsermob-proxy
OR 您可以尝试在外部公开您的本地代理(但有必要为其分配实际地址)并查看将要发生的事情。
答案 1 :(得分:0)
我遇到了同样的问题。 我使用以下堆栈:
我通过以下代码得到它(我将密钥代码加粗):
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);