我有一张这样的桌子:
<table>
<th>
<td>Area</td><td># of errors</td>
</th>
<tr><td>school</td><td>23</td></tr>
<tr><td>student</td><td>0</td></tr>
<tr><td>school</td><td>17</td></tr>
<tr><td>student</td><td>0</td></tr>
</table>
如何选择“学校”区域的最后一行。
直到最近我用 assert_text 和
//table//tr//td[contains(text(),'school')]/following::td
avalue
为 0,即零错误。
但是,现在我需要考虑有错误的行,但仍然查看“最后”行 - 对于一个区域 - 错误为零。
对于这种情况,使用
//table//tr//td[contains(text(),'school')]/following::td
错误地选择了有 23 个错误的第一行。
我尝试使用tr[last()]
-
//table//tr[last()]//td[contains(text(),'school')]/following::td[2]
但问题是这选择了最后一个表格行 - 这是给学生的。我想要最后一个用于学校的表格行(它实际上是所有行中最后一个表格行的下一个)。
我也试过:
//table//td[contains(text(),'school')][last()]/following::td[2]
但这不起作用(它仍然选择“第一”学校行)。
我需要能够只考虑一个学校行、两个学校行和超过 2 个学校行,所以我需要表达式足够动态来处理它。