在Capybara 2.1.0上使用Rspec 2.12.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
,我能够看到一系列成功,然后是一系列页面,除了body标签中的“Not Found”之外什么也没说。谷歌没有发现任何事情 - 想法?
我注意到BODY中的“未找到”内容是在使用capybara-webkit运行javascript的规范之后开始的。即使在after(:all)块中显式重置Capybara.current_driver =:rack_test也无法解决问题,但我认为这是相关的。
答案 0 :(得分:1)
虽然仍然不能100%确定导致此问题的原因,但使用capybara-webkit从测试中删除Capybara.automatic_reload = false
解决了这个问题。