絶対xpathと相対xpathの違いは何ですか? Selenium自動化テストではどちらが優先されますか? SeleniumとRobotのフレームワークを使用してテストスクリプトを準備しています。
Absolute Xpath:ルート要素からdesire要素への完全なパスを使用します。
Relative Xpath:必要な要素を参照して開始し、そこから移動できます。
ルート要素からの完全なパスではないため、常に相対Xpathが優先されます。 (// html // body)..将来、追加/削除時にWeb要素のいずれかが使用されるため、絶対Xpathが変更されます。したがって、オートメーションでは常に相対Xpathを使用します。
以下は、それらの詳細について参照できるいくつかのリンクです。
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のわずかな変更により無効になるか、間違った要素を参照するため、より回帰する傾向があります
Html未満を考慮する
<html>
<body>
<input type ="text" id="username">
</body>
</html>
絶対パス= html/body/inputおよび相対パス = // * [@ id = "username"]
Absolute xpathのデメリットは、htmlに変更が加えられるとメンテナンスが高くなり、パス全体が妨げられる可能性があることと、長いxpathを記述する必要があるため、相対xpathが優先されることです。