webentwicklung-frage-antwort-db.com.de

Wie führe ich Selenium Chrome WebDriver im unbeaufsichtigten Modus aus?

Bei Verwendung von Chrome Selenium-WebDriver wird beim Starten der Server eine Diagnoseausgabe ausgegeben:

Startete ChromeDriver (v2.0) auf Port 9515

Ich möchte diese Nachrichten nicht sehen. Wie kann ich sie unterdrücken?

Ich mache das

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

Die Diagnoseausgabe wird jedoch nicht unterdrückt.

18
LeMoussel

Ich mache das einfach 

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

Gute Frage, ich weiß jedoch nicht, wo Sie diese .AddArgument("--silent");-Sache haben, da dies der Befehlszeilenschalter von Chrome ist, nicht für ChromeDriver. Außerdem gibt es ohnehin keinen Chrome-Switch namens --silent.

Unter OpenQA.Selenium.Chrome-Namespace gibt es eine Klasse mit dem Namen ChromeDriverService, deren Eigenschaft SuppressInitialDiagnosticInformation standardmäßig auf false festgelegt ist. Im Grunde möchten Sie vielleicht ChromeDriverService erstellen und in den Konstruktor von ChromeDriver übergeben. Bitte beachten Sie die Dokumentation hier .

Hier ist der C # -Code, der die Diagnoseausgaben von ChromeDriver unterdrückt.

ChromeOptions options = new ChromeOptions();

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

IWebDriver driver = new ChromeDriver(service, options);

EDIT: ChromeDriver (nicht Chrome) hat ein Befehlszeilenargument --silent, das funktionieren soll. SuppressInitialDiagnosticInformation in der .NET-Bindung macht genau das. Es scheint jedoch, dass nur einige der Nachrichten unterdrückt werden.

Hier ist ein geschlossenes Chromedriver-Ticket: Problem 116: Wie kann ich die Diagnosemeldungen und die Protokolldatei von Chrome Driver deaktivieren?

11
Yi Zeng

Für mich das einzige, für das gearbeitet hat 

   Selenium-chrome-driver-2.48.2.jar
   chromedriver 2.20
   Selenium-Java-2.48.2.jar

war

   ChromeOptions options = new ChromeOptions();
   System.setProperty("webdriver.chrome.args", "--disable-logging");
   System.setProperty("webdriver.chrome.silentOutput", "true");
   driver = new ChromeDriver(options);
4
Dan

Für mich hat keine der vorherigen Antworten nicht geholfen, meine Lösung war:

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

versuche diesen Code, es wird den Browser mit "headless" verstecken. Argumente, aber Chrome ver sollte> 58

(und sogar Sie können das Eingabeaufforderungsfenster ausblenden)

    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

Dieser Code funktioniert gut für mich:

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 { }
}
0
Haddad