2013-07-13 2 views
2

저는 Rails 프로젝트를 확인하기 위해 RSpec과 함께 Capybara를 사용하고 있습니다.레일 : Capybara가 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' 

오류가 발생

(이 경우, 객체 만 수량 선택하지 않음) (A되는 플래시 오류 클래스 명), 플래시 메시지가 표시됩니다 :

- 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 

그러나 나는 다음과 같은 카피 바라 오류 얻을 :

(save_and_open_page 사용) 열린 페이지는 해당 사업부와 오류 메시지가 표시됩니다 : 나는 카피 바라의 최신 버전을 사용하고

div#flash-msg.flash-error 

을 (유래에 많은 유사한 문제는 카피 바라의 이전 버전에 비해 때문에)를 사용하여 gem 'capybara', :git => 'https://github.com/jnicklas/capybara.git'

어떤 생각? 미리 감사드립니다.

편집 : 알렉스에서 감지 카피 바라 코드에

수정 타이핑 실수.

답변

0

capybara에서 사용중인 선택자가 div#flash-error이지만 div가 div#flash-msg.flash-error 이상인 경우에만 div.flash-error입니다.

+0

답장을 보내 주셔서 감사합니다. Alex,하지만 타이핑 실수였습니다. Capybara 응답에서 볼 수 있듯이, 정확하게'div.flash-error' (편집시 수정 됨)가 예상됩니다. – htaidirt

관련 문제