2014-09-15 1 views
0

확인란을 선택해야하는 곳과 Capybara가 상자를 체크하지 않는 이유에 상관없이 기능 테스트를 만들려고합니다.Capybara가 rspec 기능 테스트에서 체크 박스를 선택하지 않았습니다

내가 사용하고 :

RSpec에 : 3.0.4 및 카피 바라 : 내가보기의 스냅 샷을 인쇄 2.4.1

, 체크 박스가 선택되어 있지 않습니다.

pry에서 checkbox 코드를 실행하면 "checked"라는 문자열이 반환되지만 스냅 샷을 인쇄하면 확인란이 선택되지 않고 테스트가 통과되지 않습니다. 이 체크 박스를 확인하는 또 다른 방법이 있는지 궁금합니다. 여기

지금까지 내 현재 코드 :

기능 테스트 : 매크로

background do 
    discussion_group 
    @user2 = FactoryGirl.create(:user) 
    add_user_to_user_role_for_group(group, @user2) 
    admin_login 
    add_user_to_admin_role_for_group(group, @user) 
    visit groups_path 
    click_on 'Email Group' 
end 

scenario 'sending a valid email' do 
    valid_form 
    expect(page).to have_content group_email_success_notification 
    expect_count_of_deliveries_to_be 1 
end 

:

def valid_form 
    fill_in 'group_email_subject', with: new_text 
    fill_in 'group_email_body', with: Faker::Lorem.words(200).join("\s") 
    check "group_email_#{@user2.id}_" 
    click_on "Send Email" 
end 

내 테스트의 출력은 내가 1 사용자가 선택한 의미를 가지고해야한다는 것입니다 그 나는 사용자를 확인하지 않았다. 콘솔의 체크 라인을 실행하면 다음과 같습니다.

[10] check('group_email_10_') 
=> "checked" 

모든 도움을 주시면 감사하겠습니다.

답변

0

내가 사용하십시오 :

page.check를 예를 들어
\ ('의 .class, #ID 삽입, 또는 값') :
입력 유형 = "체크 박스"ID = "puppy_gooddog"

+0

내가있어 page.check를 사용하여 시도 및 않았다 = "강아지 [gooddog]"값 = "예"
page.check ('puppy_gooddog') 또는 page.check ('[gooddog] 강아지')의 이름 같은 결과. 이름을 사용하면 모든 확인란의 이름이 모두 동일하기 때문에 모호한 오류가 발생합니다. 최종 결과는 모든 체크 박스는 코드에서 사용할 배열입니다. 이것이 파이어 폭스와 셀레늄 웹 드라이버의 문제가 될지 궁금하다. 최근 파이어 폭스 업그레이드 셀레늄 웹 드라이버가 호환되지 않는 것 같아서 다운 그레이드를하고 내가 말할 수있는 것에서 꼭 필요한 것은 아닙니다. – Vell

관련 문제