通过Ruby WebDriver获取chromes控制台日志

时间:2013-09-17 09:41:22

标签: ruby webdriver selenium-webdriver selenium-chromedriver

此问题之前已在Java(Get chrome's console log

中得到解答

但是,我正在使用Ruby绑定,并想知道是否提供了类似的功能?

我查看了Ruby源代码,但看不到任何提及或引用LoggingPreferences。

顺便说一句,我正在使用RemoteWebDriver并传入所需的功能对象。据推测,我想在该对象中设置日志记录首选项,但我很难看到在哪里。

2 个答案:

答案 0 :(得分:7)

对迟到的回应道歉。

我最初通过向Webdriver添加以下内容来实现它;

module Selenium
  module WebDriver
    class Options

      #
      # Returns the available logs for this webDriver instance
      #
      def available_log_types
        @bridge.getAvailableLogTypes
      end

      #
      # Returns the requested log
      #
      # @param type [String] The required log type
      #
      # @return [Array] An array of log entries
      #
      def get_log(type)
          @bridge.getLog(type)
      end

    end
  end
end

何时需要"这导致以下支持;

driver.manage.get_log(:browser)

然而,2.30版的硒红宝石宝石暴露了伐木API(虽然是实验性的)。

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

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

因此,从2.38起,以下内容应在没有上述扩展名的情况下运作;

driver.manage.logs.get :browser

答案 1 :(得分:0)

您也可以使用此代码

需要'selenium-webdriver'

console_logs = @ browser.driver.manage.logs.get(:browser) puts = console_logs

ReportBuilder.build_report

使用命令 -f json -o my_report_file.json 生成报告。