web-dev-qa-db-ja.com

Selenium Chrome WebDriverをサイレントモードで実行する方法は?

Chrome Selenium-WebDriverを使用すると、サーバーの起動時に診断出力が出力されます。

ポート9515でChromeDriver(v2.0)を起動しました

これらのメッセージを見たくないのですが、どうすれば抑制できますか?

私はこれをします

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

ただし、診断出力は抑制されません。

25
LeMoussel

私は単にこれをします

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

良い質問ですが、.AddArgument("--silent");をどこで手に入れたのかはわかりません。これは、Chromeのコマンドラインスイッチであり、ChromeDriver用ではありません。また、とにかくChromeと呼ばれるスイッチ--silentはありません。

OpenQA.Selenium.Chromeネームスペースの下に、ChromeDriverServiceという名前のクラスがあり、これはSuppressInitialDiagnosticInformationプロパティがデフォルトでfalseになっています。基本的には、ChromeDriverServiceを作成してChromeDriverのコンストラクターに渡すことができます。ドキュメントを参照してください こちら

ChromeDriverの診断出力を抑制するC#コードは次のとおりです。

ChromeOptions options = new ChromeOptions();

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

IWebDriver driver = new ChromeDriver(service, options);

EDIT:ChromeDriver(Chromeではない)には、動作するはずのコマンドライン引数--silentがあります。 .NETバインディングのSuppressInitialDiagnosticInformationは、まさにそれを行います。ただし、一部のメッセージしか抑制されないようです。

クローズドクロームドライバーチケットを次に示します。 問題116:診断メッセージとログファイルを無効にする方法Chrome Driver?

13
Yi Zeng

私のために働いた唯一のもの

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

私にとって、以前の答えのいずれも役に立たなかった場合、私の解決策は次のとおりでした:

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

このコードを試すと、「ヘッドレス」引数でブラウザが非表示になりますが、Chrome ver should> 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");
3
Hassan Saeed

このコードは私にとってはうまくいきます:

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

ChromeコンソールでSeleniumを使用するブラウザ完全にサイレントモードを実行するには、次のスニペットを使用する必要があります。

options = Options()
options.headless = True
options.add_experimental_option("excludeSwitches", ["enable-logging"])

そのトリックは、最初の最初のメッセージDevTools listening on ws://127.0.0.1を含め、Seleniumドライバまたはブラウザ自体からのコンソールメッセージを抑制します。

0
vmm86