无头调试 Chrome
Debug in headless Chrome
从 capybara_webkit
切换到 headless_chrome
后,我正在尝试找到一种方法来复制
Capybara::Webkit.configure do |config|
config.debug = true
end
或
Capybara.javascript_driver = :webkit_debug
使用新驱动程序。
目标是能够看到运行rspec my_spec.rb
时发生的一切日志:比如所有GET requests
.
有办法实现吗?
使用 Selenium 时没有像 capybara_webkit
实时输出调试信息的调试选项那样的选项,但是您可以访问 Chrome
日志并在每个日志的末尾输出它们测试(或者你当然可以编写一个助手来在你调用它时输出它们)。
首先,您需要配置用于日志记录的 selenium 驱动程序
Capybara.register_driver :logging_chrome do |app|
caps = Selenium::WebDriver::Remote::Capabilities.chrome(
# customize this based on which and what level logs your prefer
loggingPrefs: {
browser: 'ALL',
driver: 'ALL',
performance: 'ALL'
}
)
browser_options = ::Selenium::WebDriver::Chrome::Options.new()
browser_options.headless!
Capybara::Selenium::Driver.new(
app,
browser: :chrome,
desired_capabilities: caps,
options: browser_options
)
end
然后您将设置使用该驱动程序
Capybara.javascript_driver = :logging_chrome # possibly default_driver = depending on your config
然后添加一个获取日志并显示它们的后块
after(:each) do
# customize based on which type of logs you want displayed
log_types = page.driver.browser.manage.logs.available_types
log_types.each do |t|
puts t.to_s + ": " + page.driver.browser.manage.logs.get(t).join("\n")
end
end
从 capybara_webkit
切换到 headless_chrome
后,我正在尝试找到一种方法来复制
Capybara::Webkit.configure do |config|
config.debug = true
end
或
Capybara.javascript_driver = :webkit_debug
使用新驱动程序。
目标是能够看到运行rspec my_spec.rb
时发生的一切日志:比如所有GET requests
.
有办法实现吗?
使用 Selenium 时没有像 capybara_webkit
实时输出调试信息的调试选项那样的选项,但是您可以访问 Chrome
日志并在每个日志的末尾输出它们测试(或者你当然可以编写一个助手来在你调用它时输出它们)。
首先,您需要配置用于日志记录的 selenium 驱动程序
Capybara.register_driver :logging_chrome do |app|
caps = Selenium::WebDriver::Remote::Capabilities.chrome(
# customize this based on which and what level logs your prefer
loggingPrefs: {
browser: 'ALL',
driver: 'ALL',
performance: 'ALL'
}
)
browser_options = ::Selenium::WebDriver::Chrome::Options.new()
browser_options.headless!
Capybara::Selenium::Driver.new(
app,
browser: :chrome,
desired_capabilities: caps,
options: browser_options
)
end
然后您将设置使用该驱动程序
Capybara.javascript_driver = :logging_chrome # possibly default_driver = depending on your config
然后添加一个获取日志并显示它们的后块
after(:each) do
# customize based on which type of logs you want displayed
log_types = page.driver.browser.manage.logs.available_types
log_types.each do |t|
puts t.to_s + ": " + page.driver.browser.manage.logs.get(t).join("\n")
end
end