如何通过Selenium为Edge的ModHeader扩展配置请求头参数
解决Selenium加载Edge ModHeader并设置请求头的问题
你的代码问题出在localStorage.setItem的用法上——它是方法调用,不是数组索引,且需要传入两个参数:存储键名和序列化后的字符串值。另外,你要设置的请求头键是IsWebView2,代码里写成了小写的iswebview2,大小写不匹配也会导致配置不生效。
正确实现步骤
- 确认ModHeader扩展已正确加载:你已完成这一步,确保扩展的CRX路径或ID配置无误。
- 执行正确的localStorage注入脚本:
ModHeader在localStorage中使用的键名是modheader,需将配置序列化为JSON字符串传入。以下是修正后的代码示例:
Java版本代码
// 构造符合ModHeader格式的配置字符串 String modHeaderConfig = "{\"headers\":[{\"enabled\":true,\"name\":\"IsWebView2\",\"value\":\"true\"}],\"shortTitle\":\"1\",\"title\":\"Profile 1\",\"version\":2}"; // 执行脚本将配置写入localStorage executor.executeScript("localStorage.setItem('modheader', arguments[0]);", modHeaderConfig);
关键细节
- 使用
arguments[0]传递配置字符串,避免JavaScript中的引号转义问题; - 请求头的
name严格匹配IsWebView2(大小写一致); - 配置对象的结构需符合ModHeader的存储规范(
version保持为2,title和shortTitle可按需调整); - 执行脚本后,刷新页面或访问目标URL,请求头才会生效。
验证方式
打开Edge开发者工具(F12),进入Application标签页查看Local Storage下的modheader项,确认配置是否正确写入;也可在Network标签页检查请求的请求头是否包含IsWebView2: true。
内容的提问来源于stack exchange,提问作者Bachu ChennakesavaRao
相关产品推荐
相关产品推荐

