此处的tableenter图像描述我想使用轴为表中的列值编写一个xpath,该列值对应于同一行中的特定值。
例如,我想打印HDIL的最后一列值。
我尝试过的Xpath:
//a[contains (text(), ‘HDIL’)]/following-sibling::td[@class=‘green’]
HTML
<tr>
<td>
<a href="http://demo.guru99.com/">
HDIL </a>
</td>
<td>A</td>
<td>564.6</td>
<td>68.8</td>
<td><font class="green">+ 6.1</font></td>
</tr>
您可以找到text='HDIL'的"table row",并从该行获取最后一个表单元格。例如:
//tr[td[contains(string(), 'HDIL')]]/td[last()]
或
//tr[td[contains(string(), 'HDIL')]]/td[font]
或者使用webDriver,我会找到所需行的所有单元格,然后得到最后一个:
// C# code;
var lastCell = driver.FindElements(By.XPath("//tr[td[contains(string(), 'HDIL')]]/td")).Last();
您的xpath是以从a
获取同级的方式编写的,但您应该获取包含a
的td
的同级。您的xpath还暗示class='green'
是td
的属性,但事实上(根据您的示例(它是font
的属性,是td
的子级。
因此,合适的xpath应该是://td[a[contains (text(), 'HDIL')]]/following-sibling::td[font[@class='green']]
。
请参阅此处的测试。