Как запустить Selenium Chrome WebDriver в бесшумном режиме?

При использовании Chrome Selenium-WebDriver он выдает диагностический вывод при запуске серверов:

Запустил ChromeDriver (v2.0) на порту 9515

Я не хочу видеть эти сообщения, как я могу их подавить?

Я делаю это

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

Но диагностический вывод не подавляется.

Ответ 1

Я просто делаю это

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

Ответ 2

Хороший вопрос, однако, я не знаю, где вы получили эту .AddArgument("--silent"); вещь, как этот переключатель командной строки Chrome, а не для ChromeDriver. Кроме того, в любом случае не существует переключателя Chrome --silent.

В пространстве имен OpenQA.Selenium.Chrome существует класс под названием ChromeDriverService, который имеет свойство SuppressInitialDiagnosticInformation по умолчанию false. В основном, что вы можете сделать, это создать ChromeDriverService и передать его в конструктор ChromeDriver. Пожалуйста, обратитесь к документации здесь.

Вот код С#, который подавляет выходы диагностики ChromeDriver.

ChromeOptions options = new ChromeOptions();

ChromeDriverService service = ChromeDriverService.CreateDefaultService();
service.SuppressInitialDiagnosticInformation = true;

IWebDriver driver = new ChromeDriver(service, options);

EDIT: ChromeDriver (а не Chrome) имеет аргумент командной строки --silent, который должен работать. SuppressInitialDiagnosticInformation в привязке .NET делает именно это. Однако, похоже, это только подавляет некоторые сообщения.

Вот закрытый билет на хромированную передачу: Проблема 116: Как отключить диагностические сообщения и файл журнала из драйвера Chrome?

Ответ 3

Для меня единственное, что работало для

   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);

Ответ 4

Для меня ни один из предыдущих ответов не помог, мое решение было:

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

Ответ 5

попробуйте этот код, он скроет браузер с аргументом "без головы", но 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");

Ответ 6

Этот код прекрасно работает для меня:

public static IWebDriver Driver { set; get; }
-----
Driver = CreateBrowserDriver();

////////////// Create Driver
private static IWebDriver CreateBrowserDriver()
{
    try
    {
        var options = new OpenQA.Selenium.Chrome.ChromeOptions();
        options.AddArguments("--disable-extensions");
        options.AddArgument("--headless"); // HIDE Chrome Browser
        var service = OpenQA.Selenium.Chrome.ChromeDriverService.CreateDefaultService();
        service.HideCommandPromptWindow = true; // HIDE Chrome Driver
        service.SuppressInitialDiagnosticInformation = true;

        return new OpenQA.Selenium.Chrome.ChromeDriver(service, options);
    }
    catch
    {
        throw new Exception("Please install Google Chrome.");
    }
}
////////////// Exit Driver
public static void ExitDriver()
{
    if (Driver != null)
    {
        Driver.Quit();
    }

    Driver = null;

    try
    {
        // Chrome
        System.Diagnostics.Process.GetProcessesByName("chromedriver").ToList().ForEach(px => px.Kill());
    }
    catch { }
}