通过其相邻值推导出html元素

时间:2012-01-09 09:24:25

标签: python html css xml selenium

我有一个html页面,它呈现类似于下表的内容:

nov.    service 1     [ click to download pdf ]
nov.    service 5     [ click to download pdf ]
nov.    service 3     [ click to download pdf ]
dec.    service 1     [ click to download pdf ]
dec.    service 9     [ click to download pdf ]

这是html:

<tr class="values">
    <td class="col-1 first">Nov 2011</td>
    <td class="col-2">Switzerland</td>
    <td class="col-4">7</td>
    <td class="col-5">24.56</td>
    <td class="col-6">CHF</td>
    <input width="65" height="16" type="image" name="0.0.9.7.3.1.11.1.11.17.1.8.13.1.1" src="/itc/images/btn-grey-download.png" /></td>
</tr>
<tr class="values">
    <td class="col-1 first">Nov 2011</td>
    <td class="col-2">United Kingdom</td>
    <td class="col-4">25</td>
    <td class="col-5">67.88</td>
    <td class="col-6">GBP</td>
    <input width="65" height="16" type="image" name="0.0.9.7.3.1.11.1.11.17.1.9.13.1.1" src="/itc/images/btn-grey-download.png" />
</tr>
<tr class="values">
    <td class="col-1 first">Oct 2011</td>
    <td class="col-2">Americas</td>
    <td class="col-4">14</td>
    <td class="col-5">2</td>
    <td class="col-6">USD</td>
    <input width="65" height="16" type="image" name="0.0.9.7.3.1.11.1.11.17.1.10.13.1.1" src="/itc/images/btn-grey-download.png" />
</tr>

我需要能够“选择”并点击nov月份的所有按钮(目前我正在使用Selenium)。我可以通过CSS选择器单击一个按钮(通过Firebug找出),但是如何以编程方式为nov月份的所有按钮做?伪造的代码是:

if tr.values.col-1.startswith(<month>):
    click the button in that row

1 个答案:

答案 0 :(得分:1)

由于您使用的是Selenium,因此您可能希望尝试通过XPath进行选择。这个XPath表达式将在第一列中为2011年11月的行中的所有<input>元素提供:

//td[@class='col-1 first']/text()[normalize-space()='Nov 2011']/parent::*/parent::*/td/input