【问题标题】:Check browser console output on Ruby检查 Ruby 上的浏览​​器控制台输出
【发布时间】:2014-01-29 08:56:18
【问题描述】:

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

例如,我用 Selenium 提升了浏览器(Firefox 的 Chrome),并且我用 Selenium WebDriver 做了一些操作。之后我想知道 Web 控制台中是否有任何错误。

【问题讨论】:

  • Ruby自己的begin..rescue..end有什么问题?
  • 什么都没有。我的应用程序没有失败。我想检查网络控制台。
  • 好的......如果你得到你的答案,通知我..我想知道它是否可能。

标签: ruby selenium selenium-webdriver


【解决方案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 

【讨论】:

    【解决方案2】:

    我尝试处理如下控制台错误:

    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
    

    【讨论】:

      【解决方案3】:

      2.38 版 selenium ruby​​ gem 公开了日志记录 API。

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

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

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

      这是一个 Java 示例,但您应该能够轻松翻译成 ruby​​;

      java example

      【讨论】:

      • 如果您使用 RemoteWebDriver,您仍然可以使用早期版本的 Ruby 绑定访问日志,但您必须修改代码以添加调用 API 方法的能力
      • @KickButtowski 这个答案已经超过 3 年了。很抱歉没有使我的答案中的所有链接保持最新。也许您可以找到新链接并提交修改?
      【解决方案4】:

      我会推荐像@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 应用程序交互。不确定是否仍然支持此 gem。

      最后,一定要为 chrome 获取 RailsPanel。这个插件在开发者工具插件中为您提供了一些关于 Rails 应用程序的很棒的信息。

      【讨论】:

        猜你喜欢
        • 2017-03-12
        • 1970-01-01
        • 1970-01-01
        • 2019-07-12
        • 2013-12-28
        • 2021-10-11
        • 1970-01-01
        • 2018-01-31
        • 2013-01-25
        相关资源
        最近更新 更多