[ruby-on-rails] Capybara에서 확인란을 확인하는 방법은 무엇입니까?
Rspec과 Capybara를 사용하고 있습니다.
확인 단계를 작성하려면 checkbox
어떻게해야합니까? check
값으로 시도했지만 내을 찾을 수 없습니다 checkbox
. 실제로 다른 값을 가진 동일한 ID를 가지고 있으므로 어떻게 해야할지 모르겠습니다.
코드는 다음과 같습니다.
<input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="61" name="cityID">
<input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="62" name="cityID">
<input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="63" name="cityID">
답변
나는 다음이 나를 위해 일한 것을 발견했다.
# Check
find(:css, "#cityID[value='62']").set(true)
# Uncheck
find(:css, "#cityID[value='62']").set(false)
답변
이 같은 여러 요소를 생성하는 것이 좋습니다 아니다 ID를 , 그래서 (그리고뿐만 아니라 그것을 위해) 당신은 쉽게 / 선택 해제 체크 할 수 확인란 우아한와
check 'cityID'
uncheck 'cityID'
하나는 동일한 ID로 여러 요소를 방지하고 여전히 체크 박스를 체크 할 필요가없는 경우 특정 값을 , 그는 이렇게 함께 할 수있는
find(:css, "#cityID[value='62']").set(true)
find(:css, "#cityID[value='62']").set(false)
카피 바라 입력 조작 에 대한 자세한 내용은 여기를 참조하십시오.
답변
capybara 테스트를 실행할 때 page
객체 를 얻었습니다 . 이를 통해 모든 확인란을 선택 / 선택 취소 할 수 있습니다. @buruzaemon이 이미 언급했듯이 :
이름, 아이디 또는 레이블 텍스트로 확인란을 찾아서 확인합니다.
따라서 HTML에 다음과 같은 확인란이 있다고 가정합니다.
<label>
<input type="checkbox" value="myvalue" name="myname" id="myid">
MyLabel
</label>
이것을 확인할 수 있습니다 :
page.check('myid')
page.check('MyLabel')
page.check('myname')
체크 해제는 사용 page.uncheck
방법 과 동일 합니다.
답변
나는 당신이 당신의 양식 요소에 독특한 s를 주어야 할 수도 있다고 생각합니다.id
먼저 .
그러나 Capybara 및 확인란과 관련하여 Capybara :: Node :: Actions # check 인스턴스 메서드 를 사용하면 이름, ID 또는 레이블 텍스트로 확인란을 찾아 확인할 수 있습니다.
답변
상자는 텍스트, 예를 들어 ‘옵션 3’과 연결되어있는 경우, 다음의로 capybara 3.0.3
방금 할 수있는
check 'Option 3'
답변
나는 이것이 더 오래된 질문이라는 것을 알고 있지만, 나는이 문제를 직접 해결하고 위의 모든 것을 시도해 보았으며, 이것이 마침내 나를 위해 일한 것입니다.
find("input[type='checkbox'][value='#{cityID.id}']").set(true)
이것이 누군가에게 도움이되기를 바랍니다. Capybara 2.4.4를 사용하고 있습니다.
답변
오래된 주제이지만 다른 해결책은 다음과 같습니다.
check('Option 3', allow_label_click: true)