我正在使用Capybara和Selenium驱动程序进行验收测试
使用的版本:
Selenium
2.53.1
Capybara
2.7.1
cucumber
2.2.0
cucumber-core
1.3.1
根据Selenium/Logging,已知的日志类型包括browser
,client
,driver
,performance
和server
。我想实时在控制台输出中记录所有这些日志类型。
根据我的理解,启用完整记录我正在配置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
但仅适用于浏览器日志。
问题:如何在每种情况后打印这些日志,甚至更好地实时打印?