Поиск конкретного <td>с использованием XPath - PullRequest
1 голос
/ 09 февраля 2012

У меня есть таблица, и в таблице есть это:

<table cellpadding="1" cellspacing="0" width="100%" border="0">
<tr>

<td colspan="7" class="csoGreen" width="120%"><b class="white">Accounts and Payment   Methods</b></td>
</tr>
<input type="hidden" name="pageNum" value=""/>
<input type="hidden" name="reload" value=""/>

<tr class="tableCellHeader">
<td nowrap="nowrap"><b></b></td>
<td nowrap="nowrap"><b>Account Number
<br/><br/><span id="accountToggle" style="color:#ff0000"></span></b></td>
<td nowrap="nowrap"><b><center>Amount Due</center></b></td>
<td nowrap="nowrap"><b><center>Due Date</center></b></td>

<td nowrap="nowrap"><b>Enter/Edit<br/>Payment<br/>Amount<span class="red">*</span></b></td>
<td nowrap="nowrap"><b>Enter/Edit<br/>Payment<br/>Date<span class="red">*</span></b></td>
<td nowrap="nowrap"><b>Please select a Payment Method<span class="red">*</span></b></td>

Теперь я написал это, и это работает:

account_overview_tag.xpath("//td[contains(descendant::center, 'Amount Due')]")

Тем не менее, я хочу проверить, что это конкретный тд, например

account_overview_tag.xpath("//td[2][contains(descendant::center, 'Amount Due')]")

Как заставить работать мое выражение XPATH?

1 Ответ

1 голос
/ 09 февраля 2012

<td>, в котором содержится Сумма задолженности , фактически является третьим дочерним элементом, поэтому:

account_overview_tag.xpath("//td[2][contains(descendant::center, 'Amount Due')]")

даст вам nil, чтобы указать, что ничего не найденоОднако это:

account_overview_tag.xpath("//td[3][contains(descendant::center, 'Amount Due')]")

даст вам узел, который вы ищете.Вы также можете быть немного более конкретным, включив в свой XPath <tr> что-то вроде этого:

//tr[@class="tableCellHeader"]/td[3][contains(descendant::center, "Amount Due")]
...