【问题标题】:Error while checking for headers using :selenium web driver in rspec/capybara test在 rspec/capybara 测试中使用 :selenium Web 驱动程序检查标头时出错
【发布时间】:2016-05-13 15:42:45
【问题描述】:

我有一个 rspec/capybara 测试失败并出现以下错误,因为 Selenium 不支持标头,但是此测试适用于 :rack_test 驱动程序。由于我的许多其他测试严重依赖Selenium,我无法将驱动程序更改为:rack_test

我该如何解决这个问题?有没有办法使用:rack_test 驱动程序运行这个特定的测试,而其他测试仍然使用默认的:selenium 驱动程序?

error-report.xml

    <failure message="Capybara::Driver::Base#response_headers" type="Capybara::NotSupportedByDriverError">
      <![CDATA[Capybara::Driver::Base#response_headers
./spec/feature/transaction_search_spec.rb:35:in `block (2 levels) in <top (required)>']]>
    </failure>

rails_helper.rb

 Capybara.ignore_hidden_elements = false
 Capybara.configure do |c|
   c.default_driver = :selenium     # BREAKS :(  !!!!!
   c.app_host = "http://localhost:3000"
 end

transaction_search_spec.rb

require 'rails_helper'
require 'capybara/rspec'

RSpec.feature 'Transaction Search' do

  scenario ' - Download CSV scenario' do
    visit '/signin'
    fill_in 'Email', :with => 'user@payments.org'
    fill_in 'Password', :with => 'Password123'
    page.find('#login').click

    expect(page).to have_content('Stores:')

    # search page
    visit '/search'
    expect(page).to have_content('Search')
    click_button 'Search'

    sleep 5

    click_button 'Download CSV'
    expect(page.response_headers['Content-Type']).to eq('text/csv; charset=utf-8; header=present')
    # expect(page.response_headers['Content-Disposition']).to match('filename="transactions.csv"')
  end

end

【问题讨论】:

    标签: ruby-on-rails ruby selenium rspec capybara


    【解决方案1】:

    是的,您应该可以在测试中将:driver =&gt; :rack_test 选项传递给scenario 行。有关文档示例,请参阅 Capybara README 的 this section

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-18
      相关资源
      最近更新 更多