我有html页面:
<html>
<body>
<th>a</th>
<th>b</th>
<th>c</th>
<th>d</th>
<th>e</th>
<th>f</th>
<th>g</th>
<th>h</th>
<th>i</th>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
<td>9</td>
</body>
</html>
&#13;
我需要通过选择标题(th标签)来获取数据(td标签)。 我正在尝试:
page.find(:xpath, "//body/td[count(//body/th[contains(.,'a')]/preceding-sibling::th)-1]")
我希望得到&#34; 1&#34;作为返回值,但它返回&#34; 8&#34;。 在我看来,&#34; count&#34;不能正常工作。那么,我做错了什么?
答案 0 :(得分:1)
逻辑应该计算前兄弟th
加1 ,以找到th
的正确位置索引:
//body/td[count(//body/th[contains(.,'a')]/preceding-sibling::th)+1]
<强> xpathtester demo
强>
输出
<td>1</td>