2015-09-07 73 views
5

任何關於沉默這些capybara-webkit警告的建議?沉默不必要的水豚-webkit警告

2015年9月6日14:15:38.455 webkit_server [3700:6222738]錯誤加載 /用戶/賈斯汀/庫/互聯網插件/谷歌地球網絡 插件in.plugin /內容/ MacOS的/libnpgeplugin.dylib: dlopen(/ Users/justin/Library/Internet Plug-Ins/Google Earth Web Plug-in.plugin/Contents/MacOS/libnpgeplugin.dylib,265):找不到合適的 圖像。插件/ Google地球網站 Plug-in.plugin/Contents/MacOS/libnpgeplugin.dylib:mach-o,但是錯誤 architecture plugin,NP_Initialize start plugin,NP_Initialize end 插件,NP_GetEntryPoints啓動Private_Initialize 插件,NP_GetEntryPoints結束2015年9月6日14:15:38.463 webkit_server [3700:6222738]錯誤加載 /用戶/賈斯汀/庫/應用程序 支持/實/視頻/ 3.1.0.522/FacebookVideoCalling.webplugin/Contents/MacOS/FacebookVideoCalling: dlopen(/ Users/justin/Library/Application Support/Facebook/video/3.1.0.522/FacebookVideoCalling.webplugin/Contents/MacOS/FacebookVideoCalling, 262):沒有合適的圖像f ound。發現: /用戶/賈斯汀/圖書館/應用程序 支持/ Facebook /視頻/ 3.1.0.522/FacebookVideoCalling.webplugin /內容/ MacOS/FacebookVideoCalling: mach-o,但錯誤的架構2015-09-06 14:15: 38.493 webkit_server [3700:6222738]:15:38.495 webkit_server [3700:6222738]錯誤加載 /庫/互聯網插件/ QuickTime的 插件無法進行的CFBundle 0x7ffd14fcd260(非充電狀態) 2015年9月6日14找到可執行文件.plugin/Contents/MacOS/QuickTime Plugin: dlopen(/ Library/Internet Plug-Ins/QuickTime Plugin.plugin/Contents/MacOS/QuickTime Plugin,265):找不到合適的圖像 。找到:/ Library/Internet Plug-Ins/QuickTime Plugin.plugin/Contents/MacOS/QuickTime Plugin:mach-o,但是錯誤 architecture objc [3700]:Class/Adob​​ePDFFrogressView實現於 /Library/Internet Plug -Ins/Adob​​ePDFViewer.plugin/Contents/MacOS/Adob​​ePDFViewer和 /Library/Internet Plug-Ins/Adob​​ePDFViewerNPAPI.plugin/Contents/MacOS/Adob​​ePDFViewerNPAPI。 其中一個將被使用。哪一個是未定義的。 objc [3700]: 類ObjCTimerObject在兩個實施/庫/因特網 插件/ Adob​​ePDFViewer.plugin /內容/的MacOS/Adob​​ePDFViewer和 /庫/因特網 插件/ Adob​​ePDFViewerNPAPI.plugin /內容/ MacOS的/ Adob​​ePDFViewerNPAPI 。 其中一個將被使用。哪一個是未定義的。 objc [3700]:類 MacCocoaSocketServerHelperRtc在兩個實施/庫/因特網 插件/ o1dbrowserplugin.plugin /內容/的MacOS/o1dbrowserplugin和 /庫/因特網 插件/ googletalkbrowserplugin.plugin /內容/ MacOS的/ googletalkbrowserplugin 。 其中一個將被使用。哪一個是未定義的。

回答

5

以下是防止警告顯示在控制檯中的片段:https://github.com/thoughtbot/capybara-webkit/issues/157

Capybara::Webkit.configure do |config| 
    config.block_unknown_urls # <--- this configuration would be lost if you didn't use .merge below 
end 

class WebkitStderrWithQtPluginMessagesSuppressed 
    IGNOREABLE = Regexp.new([ 
    'CoreText performance', 
    'userSpaceScaleFactor', 
    'Internet Plug-Ins', 
    'is implemented in bo' 
    ].join('|')) 

    def write(message) 
    if message =~ IGNOREABLE 
     0 
    else 
     puts(message) 
     1 
    end 
    end 
end 

Capybara.register_driver :webkit_with_qt_plugin_messages_suppressed do |app| 
    Capybara::Webkit::Driver.new(
    app, 
    Capybara::Webkit::Configuration.to_hash.merge( # <------ maintain configuration set in Capybara::Webkit.configure block 
     stderr: WebkitStderrWithQtPluginMessagesSuppressed.new 
    ) 
) 
end 

Capybara.javascript_driver = :webkit_with_qt_plugin_messages_suppressed 

雖然這部作品隱藏的消息,我覺得修復它會防止以往任何時候都加載所加載的插件的正確方法。但我還沒有想出如何與水豚和webkit做到這一點。