这是我在这里的第一篇文章,因为我看到很多很棒的答案,我想我会试一试。
我正在尝试使用XPath来获取HTML文档中的特定元素。以下是基于Google网页的示例:
<html>
<head>
<title>XPath Test</title>
</head>
<body>
<form name='f'>
<table>
<tbody>
<tr>
<td>
<input name='q' type="text" />
</td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
使用上面的示例(为了寻求帮助而简化),我希望能够找到名称为'q'的输入元素,以及谁拥有名称为5父母的祖先= 'F'。
例如,如果我在S.W.A.T的语法中这样做。这是一个位于http://ulti-swat.wikispaces.com的开源Web自动化测试库,语法如下:
| AssertElementExists |表达式|名= Q; parentElement.parentElement.parentElement.parentElement.parentElement.name = F |输入|
我刚开始学习XPath,并试图了解如何将谓词与轴组合。是否可以使用XPath执行此类表达式?如果有的话,知识渊博的人请帮忙吗?
答案 0 :(得分:13)
你可以这样做:
//input[@name='q' and ancestor-or-self::*[@name='f']]
// -- input element whose name='q' and who has an ancestor with the name='f'
或
//input[@name='q' and ../../../../../../*[@name='f']]
// -- input element whose name='q' and who is 5 parents up with the name='f'
您可以使用此桌面XPath Visualizer来测试XPath表达式。一个basic tutorial can be found here。