使用 Capybara 2.15.4 时,是什么导致 Poltergeist 屏幕截图停止工作?

What caused Poltergeist screenshot to stop working when using Capybara 2.15.4?

以前,我有 Capybara 2.5,而 Poltergeist page.save_screenshot 工作得很好。但是,最近,我刚刚将我的 Capybara 升级到 2.15.4,这导致 Poltergeist page.save_screenshot 不再工作。文件未创建。

这是我的功能规范:

feature 'create', js: true do
  before do
    visit root_path
  end

  scenario 'valid' do
    page.save_screenshot('test.png')
  end
end

spec_helper.rb:

require 'capybara/poltergeist'

Capybara.register_driver :poltergeist do |app|
  options = {
    js_errors: false,
    phantomjs_options: ['--load-images=false', '--ignore-ssl-errors=yes', '--ssl-protocol=any'],
    timeout: 60,
    debug: true
  }
  Capybara::Poltergeist::Driver.new(app, options)
end
Capybara.javascript_driver = :poltergeist

我当前的环境:

Ruby 2.3.3
Capybara 2.15.4
Poltergeist 1.9.0
PhantomJS 2.1.1

您已更新 Capybara,但未更新 Poltergeist。 Capybara 2.7 中有一个更新,其中 Capybara.save_and_open_page_path 被弃用,取而代之的是 Capybara.save_path,相对路径的行为略有不同。同时更新 Poltergeist,您的问题可能会消失。