ruby - 在 headless (headless) Chrome 中调试

标签 ruby testing rspec capybara headless

capybara_webkit 切换到 headless_chrome 后,我试图找到一种复制的方法

Capybara::Webkit.configure do |config|
  config.debug = true
end

Capybara.javascript_driver = :webkit_debug

有了新的驱动程序。 目标是能够在运行 rspec my_spec.rb 时看到发生的所有事情的日志:例如,所有 GET 请求

有办法实现吗?

最佳答案

使用 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

然后添加一个获取日志并显示它们的后 block

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

关于ruby - 在 headless (headless) Chrome 中调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51537732/

相关文章:

ruby - 如何使用页面对象迭代一系列复选框?

ruby-on-rails - capybara ::ElementNotFound:无法找到 xpath "/html"

ruby base64 通过以 2 位字符开头来编码 128 位数字,以防止末尾填充

Java 测试和 Jenkins 集成

java - 如何对我的 Java 程序进行突变测试?

scala - 如何检查 sbt 是否在测试上下文中?

testing - 澄清此默认 rspec Controller 测试并使其通过

ruby-on-rails - 无法使用 zeus 的 parallel_tests 创建并行数据库

ruby - Ruby lookbehind 断言 (1.9/2.0) 中是否存在错误?

mysql - Ruby on Rails 安装 - Ubuntu 15