Chrome Selenium-WebDriverを使用すると、サーバーの起動時に診断出力が出力されます。
ポート9515でChromeDriver(v2.0)を起動しました
これらのメッセージを見たくないのですが、どうすれば抑制できますか?
私はこれをします
ChromeOptions options = new ChromeOptions();
options.AddArgument("--silent");
IWebDriver Driver = new ChromeDriver(options);
ただし、診断出力は抑制されません。
私は単にこれをします
ChromeOptions options = new ChromeOptions();
options.AddArgument("--log-level=3");
IWebDriver driver = new ChromeDriver(options);
良い質問ですが、.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?
私のために働いた唯一のもの
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);
私にとって、以前の答えのいずれも役に立たなかった場合、私の解決策は次のとおりでした:
ChromeDriverService service = ChromeDriverService.CreateDefaultService(driverLocation);
service.SuppressInitialDiagnosticInformation = true;
service.HideCommandPromptWindow = true;
var driver = new ChromeDriver(service, options);
このコードを試すと、「ヘッドレス」引数でブラウザが非表示になりますが、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");
このコードは私にとってはうまくいきます:
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 { }
}
ChromeコンソールでSeleniumを使用するブラウザ完全にサイレントモードを実行するには、次のスニペットを使用する必要があります。
options = Options()
options.headless = True
options.add_experimental_option("excludeSwitches", ["enable-logging"])
そのトリックは、最初の最初のメッセージDevTools listening on ws://127.0.0.1
を含め、Seleniumドライバまたはブラウザ自体からのコンソールメッセージを抑制します。