Grid Browsermob代理如何使其与selenium网格一起工作?[爪哇]
我的代码中包含的内容:Grid Browsermob代理如何使其与selenium网格一起工作?[爪哇],grid,browsermob,browsermob-proxy,Grid,Browsermob,Browsermob Proxy,我的代码中包含的内容: public BrowserMobProxy getProxy() throws UnknownHostException { if (proxy == null) { proxy = new BrowserMobProxyServer(); proxy.start(0); } return proxy; seleniumProxy = ClientUtil.createSeleniumProxy(getProxy
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());
但是没有成功。我通过使用独立的browsermob实例并通过RESTAPI连接到它,成功地解决了这个问题。您可以使用简单的GET/POST/PUT请求管理远程实例,如REST API部分所述:
或您可以尝试在外部公开您的本地代理(但必须为其分配真实地址),并查看将要发生的情况。我也遇到了同样的问题。 我使用以下堆栈:
- BrowserMobProxy()
- Selenoid()->这个工具是Docker中的一个Selenium Hub,对于远程驱动程序,它的工作原理与通常的Se Grid完全相同
不适用于我,在浏览器中添加代理会导致显示
无internet
页面此解决方案很少在CI环境中工作,因为执行BMP的本地主机(通常是GitLab、Bambole代理等)必须可以从远程浏览器(通常是云部署的)访问。
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);