ruby - 在无头 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
日志并在每次测试结束时输出这些日志(或者您可以编写一个帮助程序以在调用时输出它们当然)。
首先,您需要配置硒驱动程序以进行日志记录
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
推荐阅读
- sql - 无法将字节数据存储到 sqlserver
- javascript - 如何在 vue 中仅显示对象的键值
- wordpress - MailChimp 没有在我的网站上接收来自 Mailchimp 表单的邮件
- jquery - Recaptcha V2 图像挑战来自 iframe
- javascript - jsPDF html 选项生成带有图像的巨大 PDF 文件大小
- swift - 带有 alpha 值的导航栏颜色
- ruby-on-rails - 在 Rails 中设置默认用户名
- gitlab - 将 pytest 覆盖率附加到 Gitlab CI 工件中的文件
- python - 在变量中插入超过一定长度的中断
- c - C 编程 - 函数在多次调用时只工作一次