如何在Selenium C#中从已有Chrome Driver打开新隐身浏览器
在Selenium C#中打开新的隐身Chrome浏览器进程
核心结论
通过已有的ChromeDriver实例无法直接启动独立的隐身浏览器进程——Selenium的Driver实例与单个浏览器进程绑定,要打开新的隐身窗口,必须创建新的ChromeDriver实例并配置隐身模式。
为什么你之前的方法无效
- JavaScript脚本:
window.open()只能在当前浏览器进程内打开新标签页,无法触发独立的隐身进程,这是浏览器的安全限制。 - Actions按键操作:ChromeDriver的Actions API是针对页面DOM元素设计的,浏览器级快捷键(如Ctrl+Shift+N)需要浏览器窗口获得系统焦点,而Selenium无法保证这一点,因此这种方法不稳定且不可靠。
正确实现方法
通过配置ChromeOptions启用隐身模式,启动新的ChromeDriver实例:
using OpenQA.Selenium; using OpenQA.Selenium.Chrome; // 配置隐身模式选项 ChromeOptions options = new ChromeOptions(); options.AddArgument("--incognito"); // 启动新的隐身Chrome浏览器实例 IWebDriver incognitoDriver = new ChromeDriver(options); // 后续操作:打开目标页面 incognitoDriver.Navigate().GoToUrl("https://example.com"); // 使用完毕后关闭实例(避免资源泄漏) // incognitoDriver.Quit();
补充说明
- 如果需要同时保留原浏览器实例和新的隐身实例,要分别管理两个
IWebDriver对象,避免混淆句柄。 - 若要在隐身窗口中执行后续操作,直接使用新创建的
incognitoDriver实例即可,无需切换窗口句柄。
内容的提问来源于stack exchange,提问作者Pete D
相关产品推荐
相关产品推荐

