xpath
2013-03-28 2 views 5 likes 
5

xpath를 사용하여 class="watchListItem", span="icon icon_checked"h3="a test" 링크를 선택하고 싶습니다. xpath를 사용하여 일치하는 링크와 범위 또는 링크와 h3을 얻을 수 있지만 링크, 범위 및 h3은 사용할 수 없습니다. 여기 Xpath - 두 개의 하위 노드를 일치시켜 부모 클래스 가져 오기

내가 무엇을 시도했다입니다 :

//*[@class = 'watchListItem']/span[@class = 'icon icon_checked'] 

//*[@class= 'watchListItem']/h3[text()='AA'] 

나는 이런 식으로 뭔가를 찾고 있어요 :

//*[@class = 'watchListItem']//*[span[@class = 'icon icon_checked'] and h3[text()='AA']]

<li> 
<a class="watchListItem" data-id="thisid1" href="javascript:void(0);"> 
<span class="icon icon_checked"/> 
<h3 class="itemList_heading">a test</h3> 
</a> 
</li> 

<li> 
<a class="watchListItem" data-id="thisid2" href="javascript:void(0);"> 
<span class="icon icon_unchecked"/> 
<h3 class="itemList_heading">another test</h3> 
</a> 
</li> 

<li> 
<a class="watchListItem" data-id="thisid3" href="javascript:void(0);"> 
<span class="icon icon_checked"/> 
<h3 class="itemList_heading">yet another test</h3> 
</a> 
</li> 

답변

5

당신은 그래서 같은 child:: 위치 경로를 사용할 수 있습니다

//a[@class="watchListItem" 
    and child::span[@class="icon icon_checked"] 
    and child::h3[text()="another test"]] 

앵커를 data-id="thisid3"으로 선택합니다.

+0

나는 비슷한 대답을 내놓았지만'child :: span' 대신'.// span'을 사용했습니다. 그 차이가 있다면 무엇인지 아십니까? ':: child'는 직접적인 자식만을 선택합니까, 아니면 어떤 자식을 선택할 것입니까? 그것은 중요하지 않습니다. 그냥 궁금해서. – Ben

+0

:: 자식은 다음과 같이합니다 : :: 자식은 직접적인 자식 만 선택해야합니다. @Ben –

+1

@Ben though .//은 자식뿐만 아니라 자식을 선택합니다. –

관련 문제