2
我使用RSpec的Capybara来检查我的Rails项目。Rails:水豚没有找到div元素
我正在测试表单域未正确填充时的错误。这里的形式(使用HAML):
= form_tag '/objects', :class => 'objects-form' do
%ul
%li= select_tag 'object', options_for_select([['Select an object', ''], ['Car', 'CAR'], ['Keys', 'KEYS'], ['Ambrella', 'AMBRELLA']]), :id => 'select-object'
%li= text_field_tag :quantity, nil
%li= submit_tag 'Buy', :id => 'object-submit'
发生错误时(在这种情况下,不选择一个对象,但只有一个量),则显示闪光消息(具有一个.flash错误类名) :
- flash.each do |type, msg|
= content_tag :div, msg, :class => "flash-#{type}", :id => 'flash-msg'
所以,这里是我的水豚测试:
it 'Should return error when no object selected' do
within 'form.objects-form' do
fill_in 'quantity', :with => '1'
click_button 'object-submit'
current_path.should == objects_path
save_and_open_page
page.should have_css 'div.flash-error'
end
end
,但我得到了下面的水豚错误:
Failure/Error: page.should have_css 'div.flash-error'
expected #has_css?("div.flash-error") to return true, got false
打开的页面(使用save_and_open_page
)显示相应的div错误消息:
div#flash-msg.flash-error
我使用的是最新版本的水豚(因为#2很多类似的问题,相对于旧版本的水豚)使用gem 'capybara', :git => 'https://github.com/jnicklas/capybara.git'
任何想法?预先感谢。
编辑:
更正上豚代码键入错误,由Alex作为检测。
感谢您的回复Alex,但这是一个输入错误。正如您在Capybara响应中所看到的那样,它正确地期待'div.flash-error'(在Edit上更正)。 – htaidirt