Включить / просмотреть сообщения console.log в автономном Chrome - PullRequest
0 голосов
/ 16 октября 2019

У меня есть приложение Rails 5.2.3, которое запускает безголовый тест Chrome с использованием Capybara, Selenium и chromedriver. Мои тесты работают нормально, но я не могу включить или просмотреть какие-либо сообщения, выводимые на console.log. Вот мои настройки:

Gemfile

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 мне не хватает некоторых настроек / регистрации, но что это? Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 17 октября 2019

Когда Chrome перешел в режим w3c по умолчанию (v75), он изменил loggingPrefs на goog:loggingPrefs, чтобы соответствовать спецификации. Попробуйте вместо этого установить goog:loggingPrefs.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...