2013-04-04 3 views
5

私は、watir-webdriverを使用してChromeに対してルビーユニットテストを実行しています。テストが実行されるとchromedriver.exeは以下のような出力が起動されるたびに表示されます。ChromeDriver.exeログを消す

Started ChromeDriver 
port=9515 
version=26.0.1383.0 
log=C:\Home\Server\Test\Watir\web\chromedriver.log 
[5468:8796:0404/150755:ERROR:accelerated_surface_win.cc(208)] Reseting D3D device 
[5468:8996:0404/150758:ERROR:textfield.h(156)] NOT IMPLEMENTED 
[WARNING:..\..\..\..\flash\platform\pepper\pep_module.cpp(63)] SANDBOXED 

この影響テストの正しい機能のいずれもありませんが、一つは「ERROR」と「WARNING」の外観を想像するかもしれないとして、たとえば、Jenkinsの失敗を探すルールを解析することは、むしろ混乱するかもしれません。確かに、私は構文解析ルールで正規表現で本当に気に入ることができますが、chromedriver.exeの部分でこの冗長で不必要なログを消すのは本当にいいですね。私は、これを解答するために多くの言及を見てきました。誰も解決策を考え出していません。はい、chromedriverはおそらく " - silent"オプションを持っていますが、実行可能ファイルに渡す方法はないようです。以下のようなコードは動作するはずですが、私が見る限りでは効果はありません。何か案は?

profile = Selenium::WebDriver::Chrome::Profile.new 
profile['--cant-make-any-switches-work-here-how-about-you'] = true 
browser = Watir::Browser.new :chrome, :profile => profile, :switches => %w[--ignore-certificate-errors --disable-extensions --disable-popup-blocking --disable-translate--allow-file-access] 
+0

こんにちはケビンを、それを黙っすべきkey --log-level=3chromeOptionsを設定します。しかし、私はあなたのスクリプトにこれを渡すことができるか分からない.. –

答えて

2

ここしかし.... selenium\webdriver\chrome\service.rb パスの開始は、あなたのシステム

に異なる場合があります...

を検索検索他の誰のための助けだと私は渡されたパラメータに「-silent」を追加、これはエラー/警告メッセージ以外のすべてを消した。

def initialize(executable_path, port) 
     @uri   = URI.parse "http://#{Platform.localhost}:#{port}" 
     server_command = [executable_path, " -silent", "--port=#{port}"] 

     @process  = ChildProcess.build(*server_command) 
     @socket_poller = SocketPoller.new Platform.localhost, port, START_TIMEOUT 

     @process.io.inherit! if $DEBUG == true 
    end 
1

私は、使用してキュウリ標準出力に現れてたクロムドライバのログメッセージのはい数百人、数百人をそらすことができました:service_log_path引数を。

@browser = Watir::Browser.new :chrome, :service_log_path => 'chromedriver.out' 

'-silent'、または'--silent'、あるいは「-silent'、または上で示唆' --silent'パラメータ私は...selenium\webdriver\chrome\service.rbに追加したときに何もしませんでした。また、宝石そのものを微調整することは、特に実行可能な解決策ではありません。

私はchromedriverの標準エラー出力をキャプチャする場所を見つけると、それは(ウィンドウにとの* nix/OSXでそれをやって対処する必要が言及しない)nullにそらすことができなかった

ドライバが何かの道をデフォルトとすべきですあまり冗長ではありません。この場合、INFOは何百ものログエントリがINFOとして出現し、それらの90%以上が同一であるため、あまりにも冗長です。

少なくとも:service_log_path引数がほとんどです。

0

あなたはselenium-server-standalone-what.ever.jar

2

を実行するJavaのオプションに-Dwebdriver.chrome.logfile="/dev/null"および/または-Dwebdriver.chrome.args="--disable-logging"を試すことができますが、これはスイッチが-silentであり、それはCMDから作品