我正在尝试使用javascript捕获查询字符串参数,以便进行分析。我进行了一些搜索,发现可以使用BMP来实现它,但是我找不到足够的示例来实现它。谁能给我指明正确的方向。
编辑1: --我使用了下面的代码,使用browsermob-proxy获取har文件,但在运行它时得到了ERROR: browsermob-proxy returned error。我和它一起用硒。
getHarFile() {
const proxy = browsermb.Proxy;
const pr = new proxy({host:"0.0.0.0",port:4444});
pr.doHAR("http://www.cnn.com/", (err,data) => {
if (err) {
logger.debug('ERROR: ' + err);
} else {
fs.writeFileSync('ua.com.har', data, 'utf8');
logger.debug("#HAR CREATED#");
}
})
}

发布于 2017-08-25 17:25:06
我终于能够使用铬控制台上可用的s对象来完成这个任务了。带有编码查询字符串的url在chrome控制台中可作为s.rb对象使用。我只是对其进行了解码,并提取了查询字符串参数。
发布于 2017-08-20 18:58:27
所以,既然我不太确定你的范围,我会给你一些想法:
1.修正浏览器-代理
您应该更改浏览器代理的主机和代理。将主机更改为127.0.0.1,并将端口更改为任意随机数(4444 its ok)。然后,通过更改浏览器设置,确保浏览器在该主机和代理中运行。
2.使用普通javascript
2.1获取当前页面查询字符串
可以使用location.search获取查询字符串。如果使用带selenium的BDD框架,则可以执行javascript代码并检索结果。您应该始终向代码中添加一个return,以便在BDD测试中接收响应。
2.2使用性能API
您可以访问性能api中的所有网络信息。如果需要获取当前页面url,可以使用以下代码:
performance.getEntriesByType("navigation")这将返回所有当前导航事件和信息。
如果您想获得页面调用的一些信息,您可以使用以下方法访问它:
performance.getEntriesByType("resource")这将返回所有的电话由您的网站。你必须循环它,搜索你想要找到的资源。
在所有方法中,都无法获得查询字符串的值和键,就像在“网络”选项卡中一样。您必须用一个函数手动分隔它,您可以使用代码在此提供来获得键的值。
发布于 2017-08-12 11:46:27
我的建议是为Google创建个人扩展,并开发一个扩展,您可以访问控制台中默认情况下无法访问的其他apis。例如,为了检查“网络”选项卡,您将拥有此对象:
chrome.devtools.network
在这里,您可能会发现两个有用的链接:
https://developer.chrome.com/extensions/devtools
我希望它能帮上忙
https://stackoverflow.com/questions/45649634
复制相似问题