8

これは私の最初の投稿であり、多くの素晴らしい回答を見たので、試してみようと思いました.

XPath を使用して、HTML ドキュメント内の特定の要素を取得しようとしています。以下は、Google の Web ページに基づいた例です。

<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>

上記の例 (助けを求める目的で単純化されています) を使用して、name='q' で、name='f を持つ 5 つの親である祖先を持つ入力要素を見つけられるようにしたいと考えています。 '。

たとえば、 http: //ulti-swat.wikispaces.comにあるオープンソースの Web 自動化テスト ライブラリである SWAT の構文でこれを行う場合、構文は次のようになります。

|AssertElementExists|式|name=q;parentElement.parentElement.parentElement.parentElement.parentElement.name=f|input|

XPath の学習を始めたばかりで、述語と軸を組み合わせる方法を理解しようとしています。XPathでこのような式を行うことは可能ですか? もしそうなら、知識のある人が助けてくれますか?

4

1 に答える 1

15

あなたがすることができます:

//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 ビジュアライザーを使用して、XPath 式をテストできます。基本的なチュートリアルはここにあります

于 2010-02-02T02:04:09.713 に答える