2013-08-14 3 views
0

오이 테스트에서 ID 속성이없는 페이지에서 href를 선택해야합니다. 내가 지금처럼 외모에 관심는 DOM의 부분 :오이 테스트에서이 요소를 찾는 방법

<div id="MyTabs"> 
    <h1 id="PageName"> 
     My Items 
    </h1> 
    <ul class="Tabs"> 
     <li class="pageTab on"> 
      <a href="/the/History.aspx">History</a> 
     </li> 
     <li class="pageTab "> 
      <a href="/the/Favorites">Favorites</a> 
     </li> 
     <li class="pageTab "> 
      <a href="/the/Details">Details</a> 
     </li> 
     <li class="pageTab "> 
      <a href="/the/Preferences">Preferences</a> 
     </li> 
    </ul> 
</div> 

나는 ... '환경 설정'에 관한 링크 요소를 얻을 필요가 있지만 link(:how_do_I_get_this_stuff 통해 얻을하는 방법을 가장 잘 모르겠습니다

답변

1

정말 링크에 대해 고유 한 부분에 따라 다릅니다. 그러나 제공된 html을 기반으로 다음과 같이 작동 할 수도 있습니다.

텍스트를 기반으로 링크를 가져 오기 :

browser.link(:text => 'Preferences').exists? 

href 속성에 따라 링크 가져 오기 : 당신이 할 수

browser.link(:href => /the\/Preferences/).exists? 

텍스트 환경 설정과 연결되는 링크가 여러 개있을 경우, 범위 검색에를 id가있는 고유해야하는 특정 div :

browser.div(:id => 'MyTabs').link(:text => 'Preferences').exists? 
+0

감사합니다. 매우 도움이됩니다. CSS 클래스를 기반으로 쿼리/드릴 다운하는 방법이 있습니까? 예를 들어, 부모 div에 "divclass"클래스가 있고 href에 pageClass가있는 경우 ...이 인스턴스에는 필요하지 않지만 내가 할 수있는 시나리오를 생각할 수 있습니다. – larryq

+0

예, 로케이터 (예 : 클래스)를 사용하여 div를 찾을 수 있습니다. 예 :'browser.div (: class => 'divclass'). 링크 (: class => 'pageClass')'. 귀하의 html 견본을 위해'browser.div (: id => 'MyTabs')를 할 수 있었을 것입니다 .. ul (class => 'Tabs') li (: class => 'pageTab', : text => 'Preferences')'. 그러나 취성을 줄이려면 가능한 한 적은 수의 로케이터를 사용해야합니다. –

관련 문제