使用selenium grid的hub做分发,且可查看分发后的服务器IP地址
背景:借助selenium 的grid做分布式运行,进行分发任务,(目前不做多浏览器的操作,只对谷歌浏览器进行操作)
目前在A服务器(http://10.40.6.24:4444)上注册了一个hub,在B和C服务器分别注册node,且都绑定在A服务器上,如图
看很多贴子在使用grid中是指定某台服务器的IP地址运行,如下方式(我另一篇贴也有提到过)
driver = new RemoteWebDriver(new URL("http://10.40.2.113:5555/wd/hub"), capabilities);
而这样,就只能自己去指定IP运行,我的目的是想通过hub节点,自己去分发任务,到某台电脑去运行,那该如何操作,实现方式
1 | driver = new RemoteWebDriver( new URL( "http://10.40.6.24:4444/wd/hub" ), capabilities); |
注hub使用时,也是使用/wd/hub,如果你在Jenkins运行时出错,请查看分发IP和你Jenkins运行的IP是否一样,如果一样,根本就没法做分发
查看分发时运行服务服务器IP
使用了hub做分发,你不通过服务器查看,你不知道他分配到那台服务器,所以还需要调用一个接口,
1 | "http://10.40.6.24:4444/grid/api/testsession?session=" + Session<br>接口:hub地址/grid/api/testsession?session= |
返回“proxyId”就是运行的ip地址,关键的代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | WebDriver driver = new RemoteWebDriver( new URL( "http://10.40.6.24:4444/wd/hub" ), capabilities); System.out.println( "获取的driver:" +driver); // 获取driver的session String getSession = driver.toString().substring(driver.toString().indexOf( "(" ) + 1 , driver.toString().indexOf( ")" )); // get请求,获取在hub上分发到某台电脑运行 Map<String, String> getIP = Pub .get( "http://10.40.6.24:4444/grid/api/testsession?session=" + getSession); Iterator<Entry<String, String>> entries = getIP.entrySet().iterator(); while (entries.hasNext()) { Entry<String, String> entry = entries.next(); System.out.println( "Key = " + entry.getKey() + ", Value = " + entry.getValue()); } // 从返回内容中获取到需要的内容 Gson gson = new Gson(); Map<String, Object> map = new HashMap<String, Object>(); map = gson.fromJson(getIP.get( "Response" ), map.getClass()); String proxyId = (String) map.get( "proxyId" ); System.out.println( "获取的ip为:" + proxyId); |
打印内容:
作者:做梦的人(小姐姐) 出处:https://www.cnblogs.com/chongyou/ 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 微信号:18582559217 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架