11

Chromeのコンソールへの出力を無効にしようとしています。--start-maximizedオプションを渡すと、正常に機能します。私は間違ったコマンドを持っているかもしれませんか?

DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("chrome.switches", Arrays.asList("--silent"));
chrome = new ChromeDriver(_chromeservice,capabilities);

私も試しました

 ChromeOptions options = new ChromeOptions();
 options.addArguments("silent");
 chrome = new ChromeDriver(options);

出力

ChromeDriverを開始しましたport=26703 version = 23.0.1240.0 log = /Brett/workspace/TestNG/chromedriver.log [1214/161331:ERROR:ipc_sync_channel.cc(378)]保留中の送信をキャンセルします[1214/161331:ERROR:ipc_sync_channel.cc( 378)]保留中の送信をキャンセルする[1214/161331:ERROR:ipc_sync_channel.cc(378)]保留中の送信をキャンセルするBlockquote

4

4 に答える 4

10

このChromedriver チケット(silentオプションについて) にヒントを得て、 のソースを調べたChromeDriverService.javaところ、 への参照が見つかりました"webdriver.chrome.logfile"

-Dwebdriver.chrome.logfile="/dev/null"私のコマンドに追加した後、ログは再び読めるようになりました.コンソールには呼び出しと例外がまだ表示されていますがjava、役に立たないChromeDriverログはなくなりました。System.out.println

次のパラメータから始めjavaます (Linux / Mac):

DIR=path/to/dir/containing/selenium/and/stuff
cd "$DIR" && java -cp "$DIR\
:$DIR/output\
:$DIR/bin/selenium-server-standalone-2.33.0.jar" \
-Dwebdriver.chrome.driver="$DIR/bin/chromedriver" \
-Dwebdriver.chrome.args="--disable-logging" \
-Dwebdriver.chrome.logfile="/dev/null" \
AllTests

Windows を使用している場合:

set DIR=path\to\dir\containing\selenium\and\stuff
cd "%DIR%" && java -cp "%DIR%;%DIR%\output;%DIR%\bin\selenium-server-standalone-2.33.0.jar" ^
-Dwebdriver.chrome.driver="%DIR%\bin\chromedriver.exe" ^
-Dwebdriver.chrome.args="--disable-logging" ^
-Dwebdriver.chrome.logfile=NUL ^
AllTests

私のクラスパスの構成についての説明 ( -cp): 私のテストは "$DIR/output" のディレクトリにあります。Selenium jar ファイルは、「$DIR/bin/selenium-server-standalone-2.33.0.jar」に配置されます。「AllTests」はpublic static void main(String[] args)、テストを起動するクラスの名前です。

他のパラメーターは一目瞭然です。必要に応じて調整してください。便宜上 (シェル/バッチ スクリプトで使用)、変数で共通ディレクトリを宣言しましたDIR

于 2013-06-09T22:41:38.990 に答える
3

クロムをセットアップしていたとき

  selenium-chrome-driver-2.48.2.jar
  chromedriver 2.20
  selenium-java-2.48.2.jar

上記の回答はどれも私にとってはうまくいきませんでした。いくつかの回答は数年前のものであるため、私にとってうまくいったものを投稿します。

    ChromeOptions chromeOptions = setupChromeOptions();
    System.setProperty("webdriver.chrome.logfile", "\\path\\chromedriver.log");
    System.setProperty("webdriver.chrome.driver", "\\path\\chromedriver.exe");
    System.setProperty("webdriver.chrome.args", "--disable-logging");
    System.setProperty("webdriver.chrome.silentOutput", "true");
    driver = new ChromeDriver(chromeOptions);
于 2015-12-29T21:30:55.433 に答える
2

--disable-logging代わりに" " を試してください。

DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("chrome.switches", Arrays.asList("--disable-logging"));
chrome = new ChromeDriver(_chromeservice,capabilities);
于 2013-01-21T08:05:46.460 に答える
0

少なくとも Selenium 3 では、ChromeDriverService とその内部クラス Builder を使用して、ドライバーをサイレント モードで起動できます。

そのためのワンライナー:

new ChromeDriver(new ChromeDriverService.Builder().withSilent(true).build());

コンストラクターは簡単です。silent を true に設定する新しいサービス ビルダーを作成し (これが重要な部分です)、最終的に ChromeDriver のコンストラクターが必要とする ChromeDriverService にビルドします。

于 2016-08-01T18:28:55.760 に答える