ruby-on-rails - 在 headless Chrome 中启用/查看 console.log 消息

标签 ruby-on-rails google-chrome selenium-webdriver capybara google-chrome-headless

我有一个使用 Capybara、Selenium 和 chromedriver 运行 headless Chrome 测试的 Rails 5.2.3 应用程序。我的测试运行得很好,但我似乎无法启用或查看任何输出到 console.log 的消息。这是我的设置:

gem 文件

ruby '2.6.5'

gem 'rails', '~> 5.2.3'

group :test do
  gem 'rspec-rails'
  gem 'capybara'

  gem 'selenium-webdriver'
  gem 'webdrivers'
end

spec_helper.rb

Capybara.register_driver :headless_chrome do |app|
  caps = Selenium::WebDriver::Remote::Capabilities.chrome loggingPrefs: {
    browser: 'ALL', client: 'ALL', driver: 'ALL', server: 'ALL'
  }

  opts = Selenium::WebDriver::Chrome::Options.new
  chrome_args = %w(--headless --window-size=1920,1080 --no-sandbox --disable-dev-shm-usage --enable-logging)
  chrome_args.each {|a| opts.add_argument a}

  Capybara::Selenium::Driver.new app, browser: :chrome, options: opts, desired_capabilities: caps
end

然后在我的任何测试中,如果我尝试检查日志(并且我知道我正在运行的代码中触发 console.log 消息),我看不到任何东西:

page.driver.browser.manage.logs.get(:browser) # => []

那么,我做错了什么?我假设在设置 :headless_chrome 驱动程序时缺少一些配置/日志记录设置,但它是什么?任何帮助将不胜感激。

最佳答案

当 Chrome 默认更改为 w3c 模式时 (v75),它将 loggingPrefs 更改为 goog:loggingPrefs 以符合规范。尝试改为设置 goog:loggingPrefs

关于ruby-on-rails - 在 headless Chrome 中启用/查看 console.log 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58418214/

相关文章:

ruby-on-rails - 如何调试 Rails 的内部工作?

ruby-on-rails - 如何在命名空间内部的 View 中呈现命名空间外部的 Rails 部分?

ruby-on-rails - Rails Web 应用程序的 native 移动应用程序

google-chrome - Chrome "stalls"请求一分钟左右

javascript - 在顶部添加元素时保持滚动位置在 Firefox 中有效,但在 Chrome 中无效

html - 标题中的标签栏右对齐。支持所有浏览器问题

python - 如何在 Linux 中查找 firefox 插件路径

ruby-on-rails - mongoid 使用相同的 mongo "_id"创建 2 个嵌入式文档

java - Selenium 2.42.2 webdriver 是否与 Firefox 27.0.1 兼容?

python - 如何使用 Selenium 单击此项目?