2012-08-16 4 views
0

RSpec 및 Capybara를 사용하여 클래스 'foo'가있는 div 내에 요소가 있는지 테스트합니다.Capybara로 여러 CSS 선택기를 선택하는 방법

<div class="foo"> 
    <p>Text zzz</p> 
    Looking for element here 
</div> 
<div class="foo"> 
    <p>Text aaa</p> 
    Element should not exist within this div. 
</div> 

페이지에 클래스 'foo는'많은 div가있다, 나는 데이터베이스에 foo는의 ID를 기반으로 그들에게 다른 ID의를 제공 할 수 있습니다.

하지만 테스트에서 foo의 ID를 모르겠습니다. 요소가 한 div에 있고 다른 요소에는 부재해야하기 때문에 div의 부모를 테스트하고 싶지 않습니다.

이 경우 요소를 테스트하는 가장 좋은 방법은 무엇입니까?

+0

는 내용이 있어야하는 요소에 확인할 방법이 없습니다. 테스트 환경에서 foo라는 이드를 가지고 있지 않다고 말하면서 무엇을 가지고 있습니까? –

+0

자세한 정보로 업데이트되었습니다. –

답변

2

내가 제대로 질문을 이해 (그리고 내가 않는 100 % 확신하지 않다), 난이 일을해야한다고 생각하는 경우 :

el1 = find(:xpath, '//div[@class="foo"][./p[contains(.,"Text zzz")]]') 
el2 = find(:xpath, '//div[@class="foo"][./p[contains(.,"Text aaa")]]') 

아마 XPath는 대신이 사용 CSS를 할 수있는 약간 간단한 방법있다 , 그러나 나는 이것이 이런 유형의 상황에서 효과가 있다는 것을 발견했다. (참고 : 실제로이 코드를 테스트하지 않았습니다.)

관련 문제