web-dev-qa-db-ja.com

絶対xpathと相対xpathの違いは何ですか? Selenium自動化テストではどちらが優先されますか?

絶対xpathと相対xpathの違いは何ですか? Selenium自動化テストではどちらが優先されますか? SeleniumとRobotのフレームワークを使用してテストスクリプトを準備しています。

11
Shashank

Absolute Xpath:ルート要素からdesire要素への完全なパスを使用します。

Relative Xpath:必要な要素を参照して開始し、そこから移動できます。

ルート要素からの完全なパスではないため、常に相対Xpathが優先されます。 (// html // body)..将来、追加/削除時にWeb要素のいずれかが使用されるため、絶対Xpathが変更されます。したがって、オートメーションでは常に相対Xpathを使用します。

以下は、それらの詳細について参照できるいくつかのリンクです。

9
Rupesh Shinde

HTML DOMの絶対xpathは/ htmlで始まり​​ます。

/html/body/div[5]/div[2]/div/div[2]/div[2]/h2[1]

相対xpathはdom要素への閉じたIDを見つけ、その要素から始まるxpathを生成します。

.//*[@id='answers']/h2[1]/a[1]

Firepath(firebug)を使用して、両方のタイプのxpathを生成できます

Seleniumで使用するxpathに違いはありません。前者は後者のものより高速かもしれません(しかし、それは観察できません)

絶対xpathはDOMのわずかな変更により無効になるか、間違った要素を参照するため、より回帰する傾向があります

6
adnan kamili

Html未満を考慮する

<html>
  <body>
    <input type ="text" id="username">
  </body>

</html>

絶対パス= html/body/inputおよび相対パス = // * [@ id = "username"]

Absolute xpathのデメリットは、htmlに変更が加えられるとメンテナンスが高くなり、パス全体が妨げられる可能性があることと、長いxpathを記述する必要があるため、相対xpathが優先されることです。

1
MD5