为什么Capybara无法看到此页面的内容?

时间:2012-08-17 16:31:58

标签: ruby-on-rails rspec capybara

我正在尝试使用Capybara编写Rspec请求规范。似乎一切都正常除了,Capybara将页面视为空白。

好的迹象:

  • 页面在浏览器中正常加载
  • 拖尾日志显示在测试运行期间呈现了正确的视图
  • 我在视图中执行的任何记录语句都已执行
  • 如果我使用assert_select "h1", :text => "hello world",则测试通过。

不好的迹象:

  • 如果我使用page.should have_content('hello world'),则会失败,说Capybara::ElementNotFound: Unable to find xpath "/html"
  • 如果我$stdout.puts page.html,除了doctype
  • 外,它都是空的

我的测试看起来像这样:

describe "working with foos" do
  it "should have a 'new foo' form" do
    get '/foos/new'
    assert_select 'h1', text: 'hello world' # passes
    page.should have_content('hello world') # fails
    $stdout.puts page.html                  # empty except for a doctype
  end
end

这里可能有什么问题?

1 个答案:

答案 0 :(得分:7)

前额拍打答案

......我正在分享以拯救他人同样的痛苦。

Capybara使用visit方法设置其页面变量。

visit '/assembly/manage/task_lists/new'

不要与Capybara一起使用get

get '/assembly/manage/task_lists/new'