2013-04-04 83 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这应该掩上了