【问题标题】:open chrome devtool inspector-inspector in selenium在 selenium 中打开 chrome devtool 检查器检查器
【发布时间】:2019-05-09 12:52:57
【问题描述】:
我希望保存(安全)来自某些网页的 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的替代方式?
提前致谢!
【问题讨论】:
标签:
selenium
google-chrome
selenium-webdriver
google-chrome-devtools
【解决方案1】:
您可以使用wshook 来拦截和修改WebSocket 请求和消息事件。使用executeScript() 或execute_script() 将以下脚本注入页面。
(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获取数据数组