Enable/view console.log 无头消息 Chrome
Enable/view console.log messages in headless Chrome
我使用 Capybara、Selenium 和 chromedriver 进行了 Rails 5.2.3 应用 运行ning 无头 Chrome 测试。我的测试 运行 很好,但我似乎无法启用或查看任何输出到 console.log
的消息。这是我的设置:
宝石文件
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
驱动程序时缺少一些 configuration/logging 设置,但它是什么?任何帮助将不胜感激。
当 Chrome 默认更改为 w3c 模式 (v75) 时,它将 loggingPrefs
更改为 goog:loggingPrefs
以符合规范。请尝试设置 goog:loggingPrefs
。
我使用 Capybara、Selenium 和 chromedriver 进行了 Rails 5.2.3 应用 运行ning 无头 Chrome 测试。我的测试 运行 很好,但我似乎无法启用或查看任何输出到 console.log
的消息。这是我的设置:
宝石文件
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
驱动程序时缺少一些 configuration/logging 设置,但它是什么?任何帮助将不胜感激。
当 Chrome 默认更改为 w3c 模式 (v75) 时,它将 loggingPrefs
更改为 goog:loggingPrefs
以符合规范。请尝试设置 goog:loggingPrefs
。