2014-05-13 24 views
1

好吧,首先代碼:另一個Xpath的困境

<tr class="tableControlDataRow evenRow twTableTR"> 
<td class="twTableTD details" align="center" rowspan="2"> 
<td class="twTableTD details" align="center" rowspan="2"> 
    <p> 
    <br> 
    **<p>** 
     <b>Model Number:</b> 
     QA GM 05132014 1038 Item 1 Model Number 
    </p> 
    <p> 
    <p> 
    <p> 
    <p> 
</td> 
<td class="twTableTD" align="center" rowspan="2">May-27-2014</td> 
<td class="twTableTD" align="center">France</td> 
<td class="twTableTD" align="center">Yes</td> 
<td class="twTableTD" align="center"> 
    <input id="hiddenCountryAuthorizationField0_0" type="hidden" name="tw#local#quoteComparison#0#country#0#authorizationStatusId#" value="0"> 
    <input id="CountryAuthorizationYES0_0" class="qclCheckbox" type="checkbox" onclick="chooseAuthorization(0,0,'Yes','1')"> 
    Yes 
    <br> 
    <input id="CountryAuthorizationNO0_0" class="qclCheckbox" type="checkbox" onclick="chooseAuthorization(0,0,'No','2')"> 
    No 
    <br> 
</td> 

現在的問題......我已經做了

//p[contains(., "QA GM 05132014 1038 Item 1 Model Number")] 

這讓我的**部分找到正確的出發點的代碼。現在我需要遍歷到<tr class="tableControlDataRow evenRow twTableTR">頂部,然後乘車返回環比下跌點擊

<input id="CountryAuthorizationYES0_0" class="qclCheckbox" type="checkbox" onclick="chooseAuthorization(0,0,'Yes','1')"> 

文本框。有什麼建議麼?

回答

2

首先找到tr,有p標記提供相應的文本,然後再往所需input

//tr[.//p[contains(., "QA GM 05132014 1038 Item 1 Model Number")]]/td/input[@id="CountryAuthorizationYES0_0"] 

只是注意,肯定有多種方式寫在這裏的XPath的。希望這一個適合你。

+0

試過在FirePath並沒有返回匹配的節點... – GregMa

+0

@GregMa可能大家分享一個鏈接到你解析的頁面? – alecxe

+0

它是內部的,所以不能。但我確實弄清楚了。看起來像我粘貼的代碼是不正確的。我使用@id,'CountryAuthorizationYES',它工作。 – GregMa

0

我也建議//p[contains(text(),'QA GM 05132014 1038 Item 1 Model Number')]/ancestor::tbody[1]//input[@id='CountryAuthorizationYES0_0']。它將搜索包含'QA GM 05132014 1038 Item 1 Model Number'文本的元素,然後搜索第一個父元素tbody,然後搜索從第一個(父)tbody開始的所需輸入

0

這並不美觀,但此代碼可能有幫助你:

//p[contains(., "QA GM 05132014 1038 Item 1 Model Number")]//parent::br/parent::td/parent::tr//input[@id='CountryAuthorizationYES0_0']