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

时间:2014-01-10 11:40:05

标签: ruby selenium selenium-webdriver

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

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

5 个答案:

答案 0 :(得分:1)

我尝试接受控制台错误,如:

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

答案 1 :(得分:0)

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

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

请务必将ruby-debug添加到您的Gemfile中,或者使用以下命令安装:

$ sudo gem install ruby-debug

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

我强烈推荐Better Errors Gem。 Check out this episode on RailsCasts about it。此gem允许您在Web浏览器中查看异常并与其进行交互。这是一个救生员。

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

最后,请务必获取RailsPanel代码。这个附加组件为您提供了一些关于开发人员工具插件中Rails应用程序的精彩信息。

答案 2 :(得分:0)

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 example

答案 3 :(得分:0)

答案 4 :(得分:0)

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

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