You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ChromeDriver调用ExecuteCdpCommand执行Network.setBlockedURLs参数无效异常排查

问题原因及修复方案

核心问题有两个:

  • 字典键重复:你用Dictionary<string, object>定义参数时,重复使用了"urls"作为键,字典的键是唯一的,后面的"*.js"会直接覆盖前面的"analytics.google.com",等于只传了一条规则。
  • 参数类型不匹配:Network.setBlockedURLs要求urls参数是字符串数组(列表),但你传的是单个字符串,这才是触发invalid argument异常的直接原因。

修复后的代码:

调整blocked_resources的结构,用字符串数组作为"urls"的值:

ChromeDriverService chromeDriverService = ChromeDriverService.CreateDefaultService(@"C:\");
chromeDriverService.HideCommandPromptWindow = true;

ChromeOptions opts = new ChromeOptions();
opts.PageLoadStrategy = PageLoadStrategy.None;

Proxy proxy = new Proxy();
proxy.Kind = ProxyKind.Manual;
proxy.IsAutoDetect = false;
proxy.SslProxy = ip_string;
opts.Proxy = proxy;

driver = new ChromeDriver(chromeDriverService, opts);
chrome_id = chromeDriverService.ProcessId;

// 正确的参数结构:urls对应字符串数组
var blocked_resources = new Dictionary<string, object>
{
    { "urls", new[] { "analytics.google.com", "*.js" } }
};

((ChromeDriver)driver).ExecuteCdpCommand("Network.setBlockedURLs", blocked_resources);

额外提示:

如果调用后仍有异常,可以先手动启用Network域(大部分场景下Selenium会自动处理,但特殊情况需要补充):

((ChromeDriver)driver).ExecuteCdpCommand("Network.enable", new Dictionary<string, object>());

内容的提问来源于stack exchange,提问作者WildBill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 05:24:56