好的,首先是代码:
<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')">
文本框。有什么建议吗?
答案 0 :(得分:2)
首先找到tr
,其p
标记带有相应的文字,然后转到所需的input
:
//tr[.//p[contains(., "QA GM 05132014 1038 Item 1 Model Number")]]/td/input[@id="CountryAuthorizationYES0_0"]
请注意,这里有多种方法可以编写xpath。希望这个适合你。
答案 1 :(得分:0)
我还建议//p[contains(text(),'QA GM 05132014 1038 Item 1 Model Number')]/ancestor::tbody[1]//input[@id='CountryAuthorizationYES0_0']
。它将搜索包含'QA GM 05132014 1038项目1型号'文本的元素,然后搜索第一个父元素tbody,然后从第一个(父)tbody开始所需的输入
答案 2 :(得分:0)
它很漂亮,但这段代码可能会对您有所帮助:
//p[contains(., "QA GM 05132014 1038 Item 1 Model Number")]//parent::br/parent::td/parent::tr//input[@id='CountryAuthorizationYES0_0']