如何在Rails日志文件中从Selenium(使用Chrome)获取“console.log”?

时间:2018-03-15 10:31:44

标签: ruby-on-rails google-chrome selenium capybara selenium-chromedriver

在Rails项目中,我正在使用Cucumber和Capybara,以便通过Selenium在Chrome网络浏览器中运行我的测试。

我的测试运行正常,但我想在我的Rails应用程序的日志文件中获取console.logconsole.error等。

我已经注册了:chrome这样的水豚司机(基于不同的文章和SO答案):

Capybara.register_driver :chrome do |app|
  capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
    chromeOptions: {
      args: chrome_switches,
    },
    loggingPrefs: {
      browser: 'ALL',
      client: 'ALL',
      driver: 'ALL',
      server: 'ALL'
    }
  )
  Capybara::Selenium::Driver.new(
    app,
    browser: :remote,
    url: "http://selenium:#{ENV['SELENIUM_PORT']}/wd/hub",
    desired_capabilities: capabilities
  )
end

但我从Chrome浏览器中没有任何日志文件。

如何在Rails日志文件中从Selenium(使用Chrome)获取“console.log”?

1 个答案:

答案 0 :(得分:2)

日志不会自动显示,您需要从Selenium请求它们然后添加然后将它们写入您喜欢的任何日志。要请求日志,您需要执行类似

的操作
page.driver.browser.manage.logs.get(:browser) # :driver, etc.

通常,您会在后续步骤中执行类似的操作,然后将其写入您希望它所在的日志文件中。