Lorsque Chrome Selenium-WebDriver est utilisé, il génère une sortie de diagnostic au démarrage des serveurs:
Démarrage de ChromeDriver (v2.0) sur le port 9515
Je ne veux pas voir ces messages, comment puis-je les supprimer?
Je fais ça
ChromeOptions options = new ChromeOptions();
options.AddArgument("--silent");
IWebDriver Driver = new ChromeDriver(options);
Mais la sortie de diagnostic n'est pas supprimée.
Je fais simplement ceci
ChromeOptions options = new ChromeOptions();
optionsChrome.AddArgument("--log-level=3");
IWebDriver driver = new ChromeDriver(options);
Bonne question, cependant, je ne sais pas où vous avez trouvé cette chose .AddArgument("--silent");
, car c'est le commutateur de ligne de commande de Chrome, pas pour ChromeDriver. En outre, il n’existe pas de commutateur Chrome appelé --silent
de toute façon.
Sous OpenQA.Selenium.Chrome
namespace, il existe une classe appelée ChromeDriverService
qui a une propriété SuppressInitialDiagnosticInformation
par défaut à false. En gros, vous voudrez peut-être créer ChromeDriverService
et la transmettre au constructeur de ChromeDriver. Veuillez vous référer à la documentation ici .
Voici le code C # qui supprime les sorties de diagnostic de ChromeDriver.
ChromeOptions options = new ChromeOptions();
ChromeDriverService service = ChromeDriverService.CreateDefaultService();
service.SuppressInitialDiagnosticInformation = true;
IWebDriver driver = new ChromeDriver(service, options);
EDIT: ChromeDriver (pas Chrome) a un argument de ligne de commande --silent
, qui est supposé fonctionner. SuppressInitialDiagnosticInformation
dans la liaison .NET fait exactement cela. Cependant, il semble que seuls certains des messages sont supprimés.
Voici un ticket chromedriver fermé: Problème 116: Comment désactiver les messages de diagnostic et le fichier journal à partir du pilote Chrome?
Pour moi la seule chose qui a fonctionné pour
Selenium-chrome-driver-2.48.2.jar chromedriver 2.20 Selenium-Java-2.48.2.jar
était
ChromeOptions options = new ChromeOptions(); System.setProperty("webdriver.chrome.args", "--disable-logging"); System.setProperty("webdriver.chrome.silentOutput", "true"); driver = new ChromeDriver(options);
Pour moi, aucune des réponses précédentes n'a pas aidé, ma solution était:
ChromeDriverService service = ChromeDriverService.CreateDefaultService(driverLocation);
service.SuppressInitialDiagnosticInformation = true;
service.HideCommandPromptWindow = true;
var driver = new ChromeDriver(service, options);
essayez ce code, il cachera le navigateur avec un argument "sans tête" mais Chrome ver devrait> 58
(et même vous pouvez masquer la fenêtre d'invite de commande)
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");