Halcyon Days

IT × 移住 × ファイナンス

MENU

テスト自動化のためにXPathの基礎からリスタートしてみる

本業で自動テストの導入を進めており、その中で自動テストを書く機会が増えたので改めて基礎から学び直してみる。

自分がプログラミングをやっている理由が自動化なので、ようやくここまで来れたという感じ。

だから今は楽しいです。

今回は基本のキ。

XPathとは

XPathとは、XML Path Languageの略で、XML文書の要素や属性を選択するための言語。

XPathの基礎文法

たとえば、下記のようなHTMLがあったとする。

<pets>
    <pet>
        <dog>
            <name>Taro</name>
            <age>2</age>
            <barthdate>2022/11/21</barthdate>
        </dog>
        <cat>
            <name>Mike</name>
            <age>3</age>
            <barthdate>2021/5/3</barthdate>
        </cat>
    </pet>
</pets>

XPathを用いてこれらの要素にアクセスするためには、ディレクトリのパス指定のように / を用いて要素を指定する。

絶対パスと短いパス

これもディレクトリと同じように考えるとわかりやすい。

絶対パスはルートから対象へ到達するまでに経由するすべての要素を記述する。

一方で、短いパスは //絶対パスを省略し、任意のレベルから記述する。

上記のドキュメントの dogname絶対パスと短いパスで表してみると

絶対パス/pets/pet/dog/name

短いパス: //dog/name

となる。

name 要素は cat でも使われているので dog から指定してやるとよい。

XPathの取得方法

たとえば、ChromeXPathを調べるにはデベロッパーツールを使う。

ElementsでXPathを取得したい要素を探し、見つかった要素を右クリックする。

表示されるメニューのCopy > Copy XPathで取得できる。

詳しい方法は他の人が詳しく書いているので参照のこと。

参照ドキュメント