-->

在selenium开的浏览器中,响应头修改插件失效,如何解决

2021-01-22 13:49发布

问题:

如题,用selenium打开加载了自己写的chrome扩展的一个浏览器,其中响应头修改失效了,在正常开发启动的浏览器中没有发现这个问题,请问哪位大佬遇到过这种情况,该如何解决,修改响应头回调代码如下:

function callback(requestDetails) {
requestDetails.responseHeaders.forEach(header => {
if (header.name == 'Content-Type' && header.value == "text/plain") {
header.value = header.value + ";charset=UTF-8";
}});
return {responseHeaders: requestDetails.responseHeaders};
}

使用和未使用selenium打开的浏览器中调试过程都没有问题。
查了部分资料,有人说在控制台的network中看到的响应头虽然没变,但实际已经修改了,但是我在修改响应头之后又获取了响应内容,依然是乱码,在正常打开的浏览器中就不会。

回答1:

几个点可以判断
1 浏览器开发工具下,看请求包是否修改了头
2 直接使用抓包工具,如wireshark,抓下这个端口的网络包,这是最终的网络传输包,如果修改了肯定就是修改了,而且可以看到传递的真实数据流



回答2:

换了种方式曲线救国了