如何在静默模式下执行Selenium Chrome WebDriver?

使用Chrome Selenium-WebDriver时,它将在服务器启动时输出诊断输出:

在端口9515上启动ChromeDriver(v2.0)

我不想看到这些消息,我怎么能抑制它们呢?

我这样做

ChromeOptions options = new ChromeOptions(); options.AddArgument("--silent"); IWebDriver Driver = new ChromeDriver(options); 

但诊断输出不会被抑制。

我只是这样做

 ChromeOptions options = new ChromeOptions(); optionsChrome.AddArgument("--log-level=3"); IWebDriver driver = new ChromeDriver(options); 

好问题,然而,我不知道你在哪里.AddArgument("--silent"); 这是Chrome的命令行开关,而不是ChromeDriver。 此外,还没有名为--silent的Chrome开关。

OpenQA.Selenium.Chrome命名空间下,有一个名为ChromeDriverService类,其属性SuppressInitialDiagnosticInformation默认为false。 基本上您可能想要做的是创建ChromeDriverService并将其传递给ChromeDriver的构造函数。 请参阅此处的文档。

以下是抑制ChromeDriver诊断输出的C#代码。

 ChromeOptions options = new ChromeOptions(); ChromeDriverService service = ChromeDriverService.CreateDefaultService(); service.SuppressInitialDiagnosticInformation = true; IWebDriver driver = new ChromeDriver(service, options); 

编辑: ChromeDriver(不是Chrome)有一个命令行参数--silent ,它应该工作。 .NET绑定中的SuppressInitialDiagnosticInformation就是这样做的。 但是,它似乎只能抑制一些消息。

这是一个封闭的chromedriver票证: 问题116:如何从Chrome驱动程序中禁用诊断消息和日志文件?

对我来说唯一有用的东西

  selenium-chrome-driver-2.48.2.jar chromedriver 2.20 selenium-java-2.48.2.jar 

  ChromeOptions options = new ChromeOptions(); System.setProperty("webdriver.chrome.args", "--disable-logging"); System.setProperty("webdriver.chrome.silentOutput", "true"); driver = new ChromeDriver(options); 

对我来说,以前的答案没有任何帮助,我的解决方案是:

  ChromeDriverService service = ChromeDriverService.CreateDefaultService(driverLocation); service.SuppressInitialDiagnosticInformation = true; service.HideCommandPromptWindow = true; var driver = new ChromeDriver(service, options); 

尝试这个代码,它会隐藏浏览器“无头”参数但Chrome ver应该> 58

(甚至你可以隐藏命令提示符窗口)

  IWebDriver driver; ChromeOptions options = new ChromeOptions(); options.AddArguments("--disable-extensions"); options.AddArgument("test-type"); options.AddArgument("--ignore-certificate-errors"); options.AddArgument("no-sandbox"); options.AddArgument("--headless");//hide browser ChromeDriverService service = ChromeDriverService.CreateDefaultService(@"chromedriverExepath\"); service.SuppressInitialDiagnosticInformation = true; //service.HideCommandPromptWindow = true;//even we can hide command prompt window (with un comment this line) options.BinaryLocation = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"; driver = new ChromeDriver(service, options); driver.Manage().Window.Maximize(); driver.Navigate().GoToUrl("https://www.example.com");