2014-10-06 54 views
0

基本上我有多個是/否無線電組合,我需要區分。有兩個標籤級別 - 所以我必須將兩個都放在Target表達式中才能選擇正確的值。基於更高級別標籤的無線電輸入硒目標

HTML

<div id="divFld1279-32-6093" class="wdg"> 
<label title="Whether a client is currently attending secondary school" for="Fld1279-32-6093"> 
    At School Flag 
    <span class="spc"></span> 
</label> 
<br></br> 
<div class="rbCv"> 
    <label class="rbRad"> 
     <input class="wdg" type="radio" value="Y" name="Fld1279-32-6093"></input> 
     Yes 
    </label> 
</div 

嘗試日期

這個作品,如果只有一個是/否的無線電選擇:

//label[contains(text(),'Yes')]//input[@type="radio"] 

這不起作用:

//label[contains(text(), 'At School Flag')]/preceding::label[contains(text(),'Yes')]//input[@type="radio"] 

研究迄今

我試圖用this post想出一個解決方案,但沒有運氣。

回答

0

爲了最小程度的改變你嘗試着想,用following取代preceding因爲包含文本"Yes"<label>以下包含文本"At School Flag"<div>

然後而不是text()使用簡單的.。使用text()僅適用於如果要評估的文本節點是元素的第一個子元素的。作爲一個更普遍的規則,如果你沒有使用text(),或者如果您不能確定是否使用text().,去後者,使用.(爲了便於閱讀):

//label[contains(., 'At School Flag')] 
/following::label[contains(.,'Yes')] 
    //input[@type="radio"] 
+0

謝謝@ har07非常有用 - 無論是解決方案還是提示。非常感激。 – 2014-10-06 11:44:05

+0

不客氣,很高興聽到:) – har07 2014-10-06 11:47:20