Ответ 1
Я просто делаю это
ChromeOptions options = new ChromeOptions();
optionsChrome.AddArgument("--log-level=3");
IWebDriver driver = new ChromeDriver(options);
При использовании Chrome Selenium-WebDriver он выдает диагностический вывод при запуске серверов:
Запустил ChromeDriver (v2.0) на порту 9515
Я не хочу видеть эти сообщения, как я могу их подавить?
Я делаю это
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. Кроме того, в любом случае не существует переключателя 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?
Для меня единственное, что работало для
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");
Этот код прекрасно работает для меня:
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 { }
}