我有一系列像这样的DIV
<div id="item-14620">
<div>
<span class=""/>
<table border="0" width="100%" height="250">
<tbody>
<tr align="center">
<tr>
<tr>
<tr>
<tr>
<td valign="top" title="some data here"></td>
<td valign="top"><strong>some value here</strong> </td>
<td valign="top" title="">
<td valign="top"> </td>
</tr>
<tr>
<tr>
</tbody>
</table>
</div>
<div class="printThisItem">
</div>
同一DIV列表中的另一个DIV
<div id="item4569" >
<div>
<span class=""/>
<table border="0" width="100%" height="250">
<tbody>
<tr align="center">
<tr>
<tr>
<tr>
<td valign="top" title="some other data here"></td>
<td valign="top"> <strong>Some other value</strong> </td>
<td valign="top" title="">
<td valign="top"> </td>
</tr>
<tr>
<tr>
<tr>
</tbody>
</table>
</div>
<div class="printThisItem">
</div>
我正在使用像这样的xpath
...FindElements(By.XPath(".//*[starts-with(@id,'item')]/div[1]/table/tbody/tr[4]/td[2]/strong"))
返回元素列表,但只获取DIV列表第4行的值。有些div在第5行有所需数据,有些在第4行有。如何遍历所有div并从第4行获取值,其中数据在第4行,第5行从数据第5行获取值?
我想过迭代div两次,一次是XPath中的tr[4]
,第二次是tr[5]
,但我还需要找到它们的顺序。通过一次执行一行,我获得列表中的所有tr[4]
项,然后是所有tr[5]
项。但这不是它们在页面中的布局方式。第4行可能有3个项目,第5行可能有下3个,第4行可能有下6个。我也需要保持秩序。
我正在使用Selenium 2.53
答案 0 :(得分:1)
此xpath应该会在任何td
strong
的任何第二个tr
.//*[starts-with(@id,'item')]/div[1]/table/tbody/tr/td[2]/strong
所以,即使strong
在任何一行,你也会得到它。
答案 1 :(得分:0)
试试这个xpath - //div[contains(@id,'item')]//table//tr[4 or 5]/td")
。这将根据显示顺序为您提供td
标记中的数据。