检查Ruby上的浏览器控制台输出

如何检查浏览器控制台是否有错误?

例如,我已经使用Selenium引发了浏览器(firefox的chrome),并且我已经使用Selenium WebDriver完成了一些操作。 之后,我想知道Web控制台中是否有任何错误。

selenium ruby​​ gem的2.38版本暴露了日志记录API。

http://selenium.googlecode.com/git/rb/CHANGES

这允许您访问chrome控制台日志。

https://code.google.com/p/selenium/wiki/Logging

这是Java中的一个例子,但你应该能够轻松地转换为ruby;

java示例

我试图采取控制台错误,如:

 def check_console_log console_log = @browser.driver.manage.get_log(:browser) if console_log != nil raise(console_log) end end 

并将其记录到文件中

 def write_log(file_path) work_log = @browser.driver.manage.get_log(:browser) messages = "" work_log.each { | item | messages += item.message + "\n"} File.write( "#{file_path}.log", messages ) unless messages == "" end 

我建议添加像@Arup推荐的救援块。 此外,您可以添加调试语句,以便可以在控制台中逐步执行错误

 begin puts "Your code here" rescue => e debugger end 

一定要将ruby-debug添加到Gemfile中,或者安装它:

 $ sudo gem install ruby-debug 

现在,当您有任何错误时,您的代码将暂停,您可以在控制台中查看/单步执行exception。

我强烈推荐Better Errors Gem。 在RailsCasts上查看这一集 。 此gem允许您在Web浏览器中查看exception并与其进行交互。 这是一个救生员。

我可以跨越的另一个很酷的项目是rack-webconsole 。 这个gem允许您随时在Web浏览器中打开命令行并与您的Rails应用程序进行交互。 不确定这个gem是否仍然受支持或者没有。

最后,一定要获得RailsPanel用于chrome。 此添加内容为您提供了有关开发人员工具插件中的Rails应用程序的一些非常棒的信息。

这可以帮助您解决JavaScript错误http://watirmelon.com/2012/12/19/using-webdriver-to-automatically-check-for-javascript-errors-on-every-page/ ?

我使用此代码捕获控制台错误并显示日志

 log = Logger.new(STDOUT) console_log = $driver.manage.logs.get(:browser) if console_log != [] begin log.info console_log raise Exception.new('Console Errors Found!') end else puts "No Console errors found!" end