栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在SeleniumGrid中进行Chrome远程调试

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在SeleniumGrid中进行Chrome远程调试

因为我自己找到了解决方案,所以我想分享。我将只发布部分代码以提供提示,而不发布完整的代码,因为它可以在这里完成很多工作,但是对于有经验的开发人员来说,这应该足够了。

为了能够访问正确的浏览器并访问其远程调试Websocket,我为节点实现了自定义servlet。

首先是servlet:

public class DebugServlet extends RegistrybasedServlet

通过node.json注册像

"servlets" :["com.....ui.util.DebugServlet"],

要访问该节点(在正确的机器上),我需要进行硒会话:

"http://" + hubHost + ":" + hubPort + "/grid/api/testsession?session=" + sessionId

可以从chromedriver中检索“ sessionid”的位置。

从返回的json中,我们可以提取会话的节点信息,这里需要url。

url = JSONUtil.get(response.getBody(), "proxyId")

不,我们不能调用正确主机的servlet,并为浏览器输入websocket网址以及所需的任何数据。在我的示例中,为BasicAuth添加默认的网络头。

url+ "/extra/DebugServlet"

java中的标头(也可以是参数或提供的其他http可能性)

new BasicHeader("BrowserUrl", webSocketDebuggerUrl), new BasicHeader("Name", name),     new BasicHeader("Value", value)

在servlet中,我们现在提取数据,并使用给定的url打开浏览器的websocket并进行调用。

在servlet中:

public static final String networkDebugging = "{"id": 1,"method": "Network.enable","params": {"maxTotalBufferSize": 10000000,"maxResourceBufferSize": 5000000 }}";public static final String addHeader = "{"id": 2,"method": "Network.setExtraHTTPHeaders","params": { "headers": {"${key}": "${value}"}}}";ws.connect();ws.setAutoFlush(true);ws.sendText(networkDebugging);String payload = TemplateUtil.replace(addHeader, name, value);ws.sendText(payload);


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/633116.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号