2013-04-04 80 views
5

我正在使用watir-webdriver針對Chrome運行ruby單元測試。每當測試運行和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 

這會影響測試的正確運行的無,但作爲一個想象的「錯誤」和「警告」的出現例如,在詹金斯尋找失敗的解析規則時可能會比較困惑。當然,我可以非常喜歡解析規則中的正則表達式,但是關閉chromedriver.exe這部分的詳細和不必要的日誌記錄是非常好的。我看到很多提到這個尋找答案的東西。沒有人提出解決方案。是的,chromedriver可能有一個「 - 無聲」選項,但似乎沒有辦法將它傳遞給可執行文件。類似於下面的代碼應該可以工作,但據我所知,效果爲零。有任何想法嗎?

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

嗨凱文,開關-silent,它從CMD工程的選項。不過,我不確定你如何將它傳遞給你的腳本。 – 2013-04-11 10:55:31

回答

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 stderr和轉移爲null(更何況有處理這樣做,在Windows和* nix中/ OSX)

驅動程序應該默認爲這樣的東西不詳細。在這種情況下,信息過於冗長,因爲數百條日誌條目作爲INFO彈出,其中90%以上的條目完全相同。

至少:service_log_path參數適用於其中大部分。

0

你可以試試-Dwebdriver.chrome.logfile="/dev/null"和/或-Dwebdriver.chrome.args="--disable-logging"到Java的運行selenium-server-standalone-what.ever.jar

2

設置chromeOptionskey --log-level=3這應該掩上了