web-dev-qa-db-fra.com

Comment exécuter Selenium Chrome WebDriver en mode silencieux?

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.

18
LeMoussel

Je fais simplement ceci 

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

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?

11
Yi Zeng

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

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);
3
Kamornik Cola

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");
1
Hassan Saeed