xpath元素包含一个属性,并包含另一个属性的父母
题
这是我在这里的第一篇文章,由于我看到了许多不错的答案,因此我想我会尝试一下。
我正在尝试使用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 '。
例如,如果我要在SWAT的语法中执行此操作,这是一个开源Web自动化测试库 http://ulti-swat.wikispaces.com, ,语法将如下:
| assertelementExists |表达式|名称= q; parentelement.parentelement.parentelement.parentelement.parentelement.name = f |输入|
我刚刚开始学习XPath,并试图了解如何将谓词与轴结合在一起。是否可以使用XPath进行这样的表达方式?如果是这样,有人可以帮助您吗?
解决方案
您可以做:
//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'
您可以使用此桌面 X Pather Visualizer 测试您的XPATH表达式。一个 基本教程可以在这里找到.
不隶属于 StackOverflow