comprehensive xpath tutorial xml path language
例を使用して、XMLパス言語(XPath)のすべてを学びます。このXPathチュートリアルでは、テストでのXPath、XPath演算子、軸、およびアプリケーションの使用法と種類について説明します。
XPathという用語は、XMLパス言語の略です。これは、XMLドキュメント内のさまざまなノードを選択するために使用されるクエリ言語です。
SQLはさまざまなデータベースのクエリ言語として使用されるため( 例えば、 SQLはMySQL、Oracle、DB2などのデータベースで使用できます)、XPathはさまざまな言語やツールにも使用できます( 例えば、 XSLT、XQuery、XLink、XPointerなどの言語およびMarkLogicなどのツール、Seleniumなどのソフトウェアテストツール)
学習内容:
XPath –概要
Xpathは、基本的にXMLドキュメントをナビゲートするための言語であり、ナビゲーションについて説明するときは、XMLドキュメント内を任意の方向に移動し、任意の要素または任意の属性とテキストノードに移動することを意味します。 XPathは、World Wide Web Consortium(W3C)の推奨言語です。
XPathはどこで使用できますか?
XPathは、ソフトウェア開発業界とソフトウェアテスト業界の両方で使用できます。
Excelでのテスト実行レポートテンプレート
ソフトウェアテストドメインにいる場合は、XPathを使用してSeleniumで自動化スクリプトを開発できます。開発ドメインにいる場合は、ほとんどすべてのプログラミング言語でXPathがサポートされています。
XSLTは主にXMLコンテンツ変換ドメインで使用され、変換にXPathを使用します。 XSLTは、XPathおよびXQueryやXPointerなどの他の言語と緊密に連携します。
XPathノードのタイプ
以下に、さまざまなタイプのXPathノードを示します。
#1)要素ノード: これらは、ルートノードの直下にあるノードです。要素ノードには、属性を含めることができます。 XMLタグを表します。以下の例に示すように、Software Tester、State、Countryは要素ノードです。
#2)属性ノード :これは、要素ノードのプロパティ/属性を定義します。これは、ルートノードだけでなく要素ノードの下にも置くことができます。要素ノードは、これらのノードの親です。以下の例に示すように、「name」は要素ノード(ソフトウェアテスター)の属性ノードです。属性ノードを示すショートカットは「@」です。
#3)テキストノード :要素ノードの間にあるすべてのテキストは、以下の例のようにテキストノードと呼ばれます。「デリー」、「インド」、「チェンナイ」はテキストノードです。
#4)コメントノード :これは、プログラミング言語で処理されないコードを説明するためにテスターまたは開発者が作成するものです。コメント(一部のテキスト)は、これらの開始タグと終了タグの間にあります。
#5)名前空間 :T ”; 0j89 //// /これらは、XML要素名の複数のセット間のあいまいさを取り除くために使用されます。 例えば、 XSLTでは、デフォルトの名前空間が(XSL :)として使用されます。
#6)処理手順 :これらには、アプリケーションで処理に使用できる命令が含まれています。これらの処理命令の存在は、ドキュメント内のどこにあってもかまいません。これらは間にあります。
#7)ルートノード :これは、その中にすべての子要素を含む最上位の要素ノードを定義します。ルートノードには親ノードがありません。以下のXMLの例では、ルートノードは「SoftwareTestersList」です。ルートノードを選択するには、スラッシュ、つまり「/」を使用します。
xbox360用のVRヘッドセットはありますか
上記の用語を説明するための基本的なXMLプログラムを作成します。
Delhi India chennai India
原子値 :子ノードも親ノードも持たないすべてのノードは、アトミック値と呼ばれます。
コンテキストノード :これは、式が評価されるXMLドキュメント内の特定のノードです。また、現在のノードと見なして、単一のピリオド(。)で短縮することもできます。
コンテキストサイズ :これは、コンテキストノードの親の子の数です。 例えば、 コンテキストノードがその親の5番目の子の1つである場合、コンテキストサイズは5です。
絶対Xpath: これは、ルートノードまたは「/」で始まるXMLドキュメントのXPath式です。 例えば、 / SoftwareTestersList / softwareTester / @ name =” T1”
相対XPath: XPath式が選択したコンテキストノードで始まる場合、それは相対XPathと見なされます。 例えば、 ソフトウェアテスターが現在選択されているノードである場合、/ @ name =” T1”は相対XPathと見なされます。
XPathの軸
- 自己軸 :コンテキストノードを選択します。 XPath式self :: *および。同等です。これは単一のピリオド(。)で省略されます。
- 子軸 :コンテキストノードの子を選択します。要素、コメント、テキストノード、および処理命令は、コンテキストノードの子と見なされます。名前空間ノードと属性ノードは、コンテンツノードの子軸とは見なされません。 例えば、 子::ソフトウェアテスター。
- 親軸 :コンテキストノードの親を選択します(コンテキストノードがルートノードの場合、親軸は空のノードになります)。この軸は二重ピリオド(。。)で省略されます。式(親::状態)と(../状態)は同等です。コンテキストノードの親として要素がない場合、このXPath式は空のノードになります。
- 属性軸 :コンテキストノードの属性を選択します。この属性軸はアットマーク(@)で省略されます。コンテキストノードが要素ノードでない場合、これにより空のノードになります。式(attribute :: name)と(@name)は同等です。
- 祖先軸 :コンテキストノードの親とその親の親などを選択します。コンテキストノード自体がルートノードでない場合、この軸にはルートノードが含まれます。
- 祖先または自己: 親、親の親などを含むコンテキストノードを選択すると、常にルートノードが選択されます。
- 子孫軸 :コンテキストノードのすべての子、その子の子などを選択します。コンテキストノードの子は、要素、コメント、処理命令、およびテキストノードである可能性があります。名前空間ノードと属性ノードは、子孫軸の下では考慮されません。
- 子孫または自己 :コンテキストノードとコンテキストノードのすべての子、およびすべてのコンテキストノードの子のすべての子などを選択します。上記の場合と同様に、要素、コメント、処理命令、およびテキストノードが考慮され、名前空間と属性ノードはコンテキストノードの子の下では考慮されません。
- 前軸 :前の軸と見なされるドキュメント全体でコンテキストノードの前にあるすべてのノードを選択します。名前空間、祖先、および属性ノードは、先行軸とは見なされません。
- 前の兄弟軸 :コンテキストノードの先行するすべての兄弟を選択します。コンテキストノードの前に表示され、XMLドキュメントのコンテキストノードと同じ親を持つすべてのノード。コンテキストノードが名前空間または属性である場合、先行する兄弟は空になります。
- 次の軸 :XMLドキュメントのコンテキストノードの後にあるすべてのノードを選択します。名前空間、属性、および子孫は、この次の軸リストでは考慮されません。
- 次の兄弟軸 :コンテキストノードの次のすべての兄弟を選択します。コンテキストノードの後にあり、XMLドキュメント内のコンテキストノードと同じ親を持つすべてのノードは、次の兄弟軸と見なされます。これにより、コンテキストノードが名前空間または属性ノードの場合は空のノードセットになります。
- 名前空間 :コンテキストノードの名前空間ノードを選択します。コンテキストノードが要素ノードでない場合、これは空になります。
XPathのデータ型
以下に、XPathのさまざまなデータ型を示します。
- 数: XPathの数値は浮動小数点数を表し、IEEE754浮動小数点数として実装されます。整数データ型はXPathでは考慮されません。
- ブール値: これは、真または偽のいずれかを表します。
- ストリング: これは、0個以上の文字を表します。
- ノードセット: これは、0個以上のノードのセットを表します。
XPathのワイルドカード
以下に、XPathのワイルドカードを示します。
- アスタリスク(*) :これにより、コンテキストノードのすべての要素ノードが選択されます。テキストノード、コメント、処理手順、属性ノードを選択します。
- アスタリスク付きのアットマーク(@ *) :これにより、コンテキストノードのすべての属性ノードが選択されます。
- ノード() :これにより、コンテキストノードのすべてのノードが選択されます。これらは、名前空間、テキスト、属性、要素、コメント、および処理命令を選択します。
XPath演算子
注意: 以下の表で、eは任意のXPath式を表します。
演算子 | 説明 | 例 |
---|---|---|
e1!= e2 | 等しくない | @name!= ’T1’ |
e1 + e2 | 追加(e1とe2が数値の場合) | 5 + 2 |
e1-e2 | 減算(e1とe2が数値の場合) | 10-4 |
e1 * e2 | 乗算(e1とe2が数値の場合) | 3. 4 |
e1 div e2 | 除算(e1とe2が数値で、結果が浮動小数点値になる場合) | 4 div 2 |
e1 | e2 | e1に一致しe2に一致する2つのノードの和集合。 | //状態| //国 |
e1 = e2 | 等しい | @name = ’T1’ |
e1e1のテストはe2未満です(未満の記号 ‘<’ must be excaped by ‘<’) | test =” 5<9” will result true(). | |
e1> e2 | e1のテストがe2より大きい(大なり記号「>」は「>」で囲む必要があります) | test =” 5> 9”はfalse()になります。 |
e1<= e2 | e1のテストはe2以下です。 | test =” 5<= 9” will result false(). |
e1> = e2 | e1のテストはe2以上です。 | test =” 5> = 9”はfalse()になります。 |
e1またはe2 | e1またはe2のいずれかが真であるかどうかを評価します。 | |
e1およびe2 | e1とe2の両方が真であるかどうかを評価します。 | |
e1 mod e2 | e1の浮動小数点剰余をe2で割った値を返します。 | 7 mod 2 |
XPathの述語
述語は、XPath式によって選択されたノードを制限するフィルターとして使用されます。各述語はtrueまたはfalseのいずれかのブール値に変換されます。指定されたXPathに対してtrueの場合、そのノードが選択され、falseの場合、ノードは選択されません。
述語は常に()のような角括弧の中にあります。
例えば、 softwareTester (@ name =” T2″):
これにより、T2の値を持つ属性として名前が付けられた要素が選択されます。
ソフトウェアテストにおけるXPathのアプリケーション
XPathは、自動化テストで非常に役立ちます。手動テストを行っている場合でも、XPathの知識は、アプリケーションのバックエンドで何が起こっているのかを理解するのに非常に役立ちます。
クロムのための最高のポップアップ広告ブロッカー
自動化テストを行っている場合は、モバイルアプリテストに最適な自動化ツールの1つであるAppiumスタジオについて聞いたことがあるはずです。このツールには、と呼ばれる非常に強力な機能が1つあります。 XPath機能 これにより、自動化スクリプト全体で特定のページの要素を識別できます。
ここでは、ほとんどすべてのソフトウェアテスターが知っているツール(Selenium)から別の例を引用したいと思います。 SeleniumIDEおよびSeleniumWebDriverのXPathの知識は、テスターにとって必須のスキルです。
XPathは要素ロケーターとして機能します。ページ上の特定の要素を見つけてその要素に対して何らかのアクションを実行する必要がある場合は常に、Seleniumスクリプトのターゲット列にそのXPathを記載する必要があります。
上の画像でわかるように、Webページの任意の要素を選択して検査すると、「XPathをコピー」のオプションが表示されます。例として、Chrome Webブラウザを介してGoogle検索Web要素から取得し、上の画像に示すようにXPathをコピーすると、次の値が得られました。
//*(@id='tsf')/div(2)/div(3)/center/input(1)
ここで、このリンクに対してクリックアクションを実行する必要がある場合は、Seleniumスクリプトでクリックコマンドを指定する必要があり、クリックコマンドのターゲットは上記のXPathになります。 XPathの使用法は、上記の2つのツールだけに限定されません。 XPathが使用されるソフトウェアテストの領域とツールはたくさんあります。
ソフトウェアテストの分野におけるXPathの重要性について公正なアイデアが得られたことを願っています。
結論
このチュートリアルでは、XPath、XPath式の使用方法、さまざまな言語とツールでのXPath式のサポートについて学習しました。 XPathは、ソフトウェア開発とソフトウェアテストのどのドメインでも使用できることを学びました。
また、XPathのさまざまなデータ型、XPathで使用されるさまざまな軸とその使用法、XPathで使用されるノードの種類、さまざまな演算子、XPathの述語、相対XPathと絶対XPathの違い、XPathで使用されるさまざまなワイルドカードなどについても学びました。
幸せな読書!!
推奨読書
- データベーステストへのXMLの簡単なアプローチ
- XMLテクノロジを使用したデータテストの優れた方法(ホワイトペーパー)
- XMLコード例を使用したSOAtestでのアサーション
- QTPチュートリアル#16-XML、アクセシビリティ、およびデータベースのチェックポイントを挿入する手順
- 2021年のトップ45XMLインタビューの質問と回答(最新)
- SQLとMySQLとSQLServerの違い(例を含む)
- TestNGの例:TestNG.xmlファイルを作成して使用する方法
- 構文と例を含む究極のXPathライティングに関するチートシートチュートリアル