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

如何在C# WebDriver中通过ChromeOptions启用site-per-process标志

解决Chrome WebDriver启用Strict Site Isolation的问题

我之前也碰到过类似的情况,你尝试的方向是对的,但有几个细节没处理到位,帮你梳理下正确的实现方式:

方法一:使用启动参数(推荐)

你用--site-per-process这个参数本身是正确的,但要确保ChromeDriver和Chrome浏览器版本完全匹配——版本不兼容会导致参数无法生效。另外检查下代码里的细节,比如URL要加上协议头,下面是修正后的完整代码:

ChromeOptions options = new ChromeOptions();
// 启用Strict Site Isolation核心参数
options.AddArgument("--site-per-process");
// 可选:部分版本需配合这个特性参数强制开启
options.AddArgument("--enable-features=SitePerProcess");

// 确保ChromeDriver路径正确,若已配置环境变量可省略路径参数
IWebDriver driver = new ChromeDriver(@"c:\browserdrivers", options);
driver.Navigate().GoToUrl("https://www.google.com"); // 必须添加http/https协议头

// 验证生效方法:访问chrome://flags/#enable-site-per-process查看状态,或在控制台执行window.chrome.runtime.getPackageDirectoryEntry(),开启隔离后该调用会报错(正常现象)

driver.Quit();

方法二:使用用户偏好设置

你之前的偏好键名写错了——多了一个s,正确的键名是site_isolation.site_per_process,修正后即可生效:

ChromeOptions options = new ChromeOptions();
// 修正键名,去掉末尾多余的s
options.AddUserProfilePreference("site_isolation.site_per_process", true);

IWebDriver driver = new ChromeDriver(@"c:\browserdrivers", options);
driver.Navigate().GoToUrl("https://www.google.com");
driver.Quit();

额外注意事项

  • 若使用较旧版本的Chrome,可能不支持Strict Site Isolation特性,建议升级到最新稳定版后再尝试;
  • 启动后可以手动访问chrome://flags/#enable-site-per-process,确认"Strict Site Isolation"状态是否为"Enabled",以此验证配置是否生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:12:29