我希望保存某些网页的(安全)WebSocket 流量。我尝试使用 chrome-devtool 保存 HAR。但显然,it doesn't save the WebSocket traffic 。然而,我发现this answer这表明如果我可以更改 SDK
并记录所有 SDK.networkLog.requests()
,我就可以记录所有请求。不过,要运行 SDK
代码,我需要从 Selenium 打开 chrome Inspector-inspector
。我知道我可以使用 this answer 中的 selenium 打开开发工具。关于如何打开 inspector-inspector
有什么建议吗?或者记录 WebSocket
的替代方法?
提前致谢!
最佳答案
您可以使用wshook拦截和修改 WebSocket 请求和消息事件。使用 executeScript()
或 execute_script()
将以下脚本注入(inject)页面。
(function() {
window.sentMessage = [];
window.receivedMessage = [];
var s = document.createElement('script');
s.src = 'https://cdn.jsdelivr.net/gh/skepticfx/wshook@0.1.1/wsHook.js';
s.onload = function() {
window.wsHook.before = function(data, url) {
window.sentMessage.push(data);
console.log("Sending message to " + url + " : " + data);
}
window.wsHook.after = function(messageEvent, url, wsObject) {
window.receivedMessage.push(messageEvent.data);
console.log("Received message from " + url + " : " + messageEvent.data);
return messageEvent;
}
}
document.body.appendChild(s)
})();
执行上面的代码后,您可以从变量window.sentMessage
和window.receivedMessage
获取数据数组
关于selenium - 在selenium中打开chrome devtool检查器检查器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53674896/