Ao usar o Chrome Selenium-WebDriver, ele gerará saída de diagnóstico quando os servidores forem iniciados:
Iniciado ChromeDriver (v2.0) na porta 9515
Eu não quero ver essas mensagens, como posso suprimi-las?
Eu faço isso
ChromeOptions options = new ChromeOptions(); options.AddArgument("--silent"); IWebDriver Driver = new ChromeDriver(options);
Mas a saída de diagnóstico não é suprimida.
Eu simplesmente faço isso
ChromeOptions options = new ChromeOptions(); optionsChrome.AddArgument("--log-level=3"); IWebDriver driver = new ChromeDriver(options);
Boa pergunta, no entanto, eu não sei onde você conseguiu isso. .AddArgument("--silent");
coisa, como isso é interruptor de linha de comando do Chrome, não para o ChromeDriver. Além disso, não há um switch do Google Chrome chamado --silent
.
No namespace OpenQA.Selenium.Chrome
, há uma class chamada ChromeDriverService
que tem uma propriedade SuppressInitialDiagnosticInformation
cujo valor é false. Basicamente, o que você pode querer fazer é criar o ChromeDriverService
e passá-lo para o construtor do ChromeDriver. Por favor, consulte a documentação aqui .
Aqui está o código C # que suprime as saídas de diagnósticos do ChromeDriver.
ChromeOptions options = new ChromeOptions(); ChromeDriverService service = ChromeDriverService.CreateDefaultService(); service.SuppressInitialDiagnosticInformation = true; IWebDriver driver = new ChromeDriver(service, options);
EDIT: ChromeDriver (não Chrome) tem um argumento de linha de comando --silent
, que deveria funcionar. SuppressInitialDiagnosticInformation
na binding .NET faz exatamente isso. No entanto, parece apenas suprimir algumas das mensagens.
Aqui está um ticket fechado do chromedriver: Problema 116: Como desativar as mensagens de diagnóstico e o arquivo de log do driver do Chrome?
Para mim, a única coisa que funcionou para
selenium-chrome-driver-2.48.2.jar chromedriver 2.20 selenium-java-2.48.2.jar
estava
ChromeOptions options = new ChromeOptions(); System.setProperty("webdriver.chrome.args", "--disable-logging"); System.setProperty("webdriver.chrome.silentOutput", "true"); driver = new ChromeDriver(options);
Para mim, nenhuma das respostas anteriores não ajudou, minha solução foi:
ChromeDriverService service = ChromeDriverService.CreateDefaultService(driverLocation); service.SuppressInitialDiagnosticInformation = true; service.HideCommandPromptWindow = true; var driver = new ChromeDriver(service, options);
tente este código ele irá esconder o navegador com o argumento “sem cabeça”, mas o Chrome ver deve> 58
(e até mesmo você pode ocultar a janela de prompt de comando)
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");