ChromeDriver控制台应用程序隐藏

问题描述 投票:15回答:4

我创建了一个播放器,它将使用selenium和C#中的ChromeDriver自动化chrome。它工作正常。

发布我面临的问题是,当它为ChromDriver创建一个对象时,它将启动ChromeDriver应用程序,该应用程序会弹出,然后Chrome将加载。它非常完美,因为该应用程序正在为我加载chrome。

无论如何,我可以打开隐藏的ChromeDriver吗?

webdriver
4个回答
6
投票

是的,您需要在Start()中的WebDriver \ DriverService.cs中修改源代码;加:

this.driverServiceProcess.StartInfo.CreateNoWindow = true;

43
投票

在最新的WebDriver中,不需要在WebDriver \ DriverService.cs中修改源代码。您只需要实例化ChromeDriverService并将HideCommandPromptWindow设置为true,然后通过该服务和ChromeOptions实例化ChromeDriver。我将在下面给出C#代码示例

var chromeDriverService = ChromeDriverService.CreateDefaultService();
chromeDriverService.HideCommandPromptWindow = true;
return new ChromeDriver(chromeDriverService,  new ChromeOptions());

11
投票

不,在没有修改绑定源代码的情况下,无法在.NET绑定中隐藏chromedriver.exe的控制台窗口。这被视为绑定的一项功能,因为它使您很容易看到代码未正确清理ChromeDriver的资源,因为控制台窗口仍处于打开状态。对于某些其他语言,如果您的代码未通过调用WebDriver对象上的quit()方法正确清理ChromeDriver实例,则最终可能会在您的计算机上运行zombie chromedriver.exe进程。


1
投票

现在可以使用无头选项。可能还没有。 Running Chrome Headless

转换为C#,你可以这样做:

ChromeOptions options = new ChromeOptions();
options.AddArgument("headless");
ChromeDriver driver = new ChromeDriver(options);

现在浏览器窗口是不可见的,而程序的其余部分保持不变。

© www.soinside.com 2019 - 2024. All rights reserved.