这是我在这里的第一篇文章,由于我看到了许多不错的答案,因此我想我会尝试一下。

我正在尝试使用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表达式。一个 基本教程可以在这里找到.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top