在带有 Rspec 2.12.0 的 Capybara 2.1.0 上:
如果我运行$ rspec spec/features/user_sees_leaderboard_spec.rb
,则规范通过。
如果我运行$ rspec spec/features/*
,测试失败,声称:
Capybara::ElementNotFound:
Unable to find css "#flash"
如果我这样做save_and_open_page
了,#flash 就会出现并且可见。
这是发生故障的助手:
def sign_in_as(user)
visit new_user_session_path
fill_in "Email", with: user.email
fill_in "Password", with: user.password
click_button "Sign In"
flash = find("#flash")
flash.should have_content "You are now signed in."
end
有任何想法吗?我是 Capybara 的新手,所以不知道从哪里开始。谢谢!
编辑/更新:
通过执行save_and_open_page
一组在一起运行时失败的规范,我能够看到一系列成功,然后是一系列页面,除了正文标签中的“未找到”之外什么也没说。谷歌没有发现任何东西——想法?
更新#2
我注意到 BODY 中的“未找到”内容是在使用 capybara-webkit 运行 javascript 的规范之后开始的。即使在 after(:all) 块中明确重置 Capybara.current_driver = :rack_test 也不能解决问题,但我认为这是相关的。