检查Ruby浏览器控制台输出

6

如何检查浏览器控制台中的错误?

例如,我使用Selenium打开了Chrome或Firefox浏览器,并使用Selenium WebDriver执行了一些操作。之后,我想知道Web控制台中是否有任何错误。


Ruby自带的begin..rescue..end有什么问题? - Arup Rakshit
2
没有任何错误。我想要检查网络控制台。 - Maxim Banaev
好的...如果你得到了答案,请通知我。我想知道是否可能。 - Arup Rakshit
4个回答

1
我使用这段代码来捕获控制台错误并显示到日志中。
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 

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

0
我建议像 @Arup 建议的那样添加 rescue 块。此外,您可以添加调试语句,以便在控制台中逐步跟踪错误。
begin 
  puts "Your code here"
rescue => e
  debugger
end

请确保将ruby-debug添加到您的Gemfile中或使用以下命令进行安装:

$ sudo gem install ruby-debug

现在,当您有任何错误时,您的代码将停止,并且您可以在控制台中查看/逐步执行异常。

我强烈推荐Better Errors Gem. 请查看RailsCasts上关于它的这一集。这个 gem 允许您在 Web 浏览器中查看和交互异常。它是一个救命稻草。

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

最后,请确保为 Chrome 安装RailsPanel。这个插件提供了一些关于您的 Rails 应用程序的 awesome 信息,可以作为开发者工具插件使用。


0

如果您正在使用 RemoteWebDriver,即使使用早期版本的 Ruby 绑定,仍然可以访问日志,但您必须使用猴子补丁对代码进行修改,以添加调用 API 方法的功能。 - Robbie Wareham
@KickButtowski 这个答案已经超过3年了。很抱歉没有及时更新我的回答中的所有链接。也许你可以找到新的链接并提交编辑? - Robbie Wareham

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接