在SpecFlow/Selenium中如何启动无头模式下的无痕Chrome?
无头Chrome开启无痕模式的正确姿势
当然可以在无头模式下开启Chrome的无痕模式!你遇到的问题大概率是参数格式不对——看你的代码里用的是-incognito(单杠开头),但Chrome的命令行参数里,incognito需要双杠开头的--incognito。
Chrome对命令行参数的格式有明确区分:单杠一般用于单个字符的短参数(比如-h表示帮助),而多字符的长参数必须用双杠开头。普通Chrome窗口可能对单杠的-incognito兼容放行,但无头模式下的参数校验更严格,所以单杠版本不会生效。
给你修正后的代码:
var options = new ChromeOptions(); // 重点修正:把 -incognito 改成 --incognito options.AddArguments("--headless", "--window-size=1920,1080", "--disable-gpu", "--disable-extensions", "--no-sandbox", "--incognito"); var svc = ChromeDriverService.CreateDefaultService(); svc.Start(); Context.Driver = new ChromeDriver(svc, options);
如果想验证是否生效,可以让无头Chrome访问chrome://version页面,查看页面里的「命令行」字段是否包含--incognito,同时「个人资料路径」会显示为临时的无痕模式路径(通常带有Incognito字样)。
另外补充个小知识:除了命令行参数,你也可以通过配置用户偏好来开启无痕,但--incognito参数是最直接可靠的方式,只要格式正确就没问题。
内容的提问来源于stack exchange,提问作者Matt W
相关产品推荐
相关产品推荐

