使用Capybara运行Selenium测试时,在控制台中打印所有日志

时间:2016-12-09 10:00:52

标签: ruby selenium logging cucumber capybara

我正在使用Capybara和Selenium驱动程序进行验收测试

使用的版本:
Selenium 2.53.1
Capybara 2.7.1
cucumber 2.2.0
cucumber-core 1.3.1

根据Selenium/Logging,已知的日志类型包括browserclientdriverperformanceserver。我想实时在控制台输出中记录所有这些日志类型。

根据我的理解,启用完整记录我正在配置Capybara如下:

Capybara.configure do |config|
  config.run_server = false
  config.app_host = ENV['APP_HOST'] # APP HOST from Cucumber.yml file
  config.default_driver = :selenium
  config.match = :prefer_exact
  config.default_max_wait_time = 10

  Capybara.register_driver :selenium do |app|
    Capybara::Selenium::Driver.new(
      app, 
      :browser => ENV['BROWSER'].downcase.to_sym,
      :desired_capabilities => {
        :loggingPrefs => {
          :browser => "ALL",
          :client => "ALL",
          :driver => "ALL",
          :server => "ALL"
        }
      }
      )
  end
end

ENV['BROWSER']是'Chrome'。

我还不清楚如何将日志打印到控制台。我正在寻找一种方法来打印所有方案的日志。 我尝试将以下代码添加到hooks.rb

After do |scenario|
  puts @browser.driver.manage.get_log(:browser)
  puts @browser.driver.manage.get_log(:client)
  puts @browser.driver.manage.get_log(:server)
  puts @browser.driver.manage.get_log(:driver)  
end

@browser为零。

还尝试了hooks.rb

After do |scenario|
  puts page.driver.browser.manage.logs.get(:browser)
end

但仅适用于浏览器日志。

问题:如何在每种情况后打印这些日志,甚至更好地实时打印?

0 个答案:

没有答案