2

次のようにxpathでオブジェクトを見つけることができます//div[@id='menu-groups-group1']

これは -

//div[@id='menu']//div[@class='menu-items-block menu-groups']//div[@id='menu-groups-menu1']

同じオブジェクトですが、xpath が長くなります。

オブジェクトの xpath の長さは重要ですか? オブジェクトの検索速度に影響はありますか?

4

1 に答える 1

5

はい、重要です。はい、速度に影響します。

  • //div[@id='menu-groups-group1']の属性<DIV>を持つドキュメント内のすべての要素を検索するように、WebDriver の XPath プロセッサに指示します。次に、実行している操作 ( 、、 など)に応じて、最初の操作を見つけた後に停止する場合と停止しない場合があります。idmenu-groups-group1findElement()findElements()
  • //div[@id='menu']//div[@class='menu-items-block menu-groups']//div[@id='menu-groups-menu1']WebDriver の XPath プロセッサに、 の属性<DIV>を持つドキュメント内のすべての要素を検索し、それらの要素内の任意の深さに埋め込まれ、の属性を持つすべての要素を検索し、埋め込まれているすべての要素を検索するように指示します。これらの要素内の任意の深さで、 の属性を持っています。次に、実行している操作 ( 、、 など)に応じて、最初の操作を見つけた後に停止する場合と停止しない場合があります。idmenu<DIV>classmenu-items-block menu-groups<DIV>idmenu-groups-group1'findElement()findElements()

ご覧のとおり、XPath が長いほど処理が複雑になり、検査する要素のセットが大きくなる可能性があります。

XPath を使用するか、代わりにid('menu-groups-group1')WebDriver を使用する方がはるかに優れています。By.id('menu-groups-group1')例の 2 番目の形式を使用する唯一の理由は、menu-groups-group1id が一意でない場合です。その場合、開発者は自分自身を非常に恥じるべきです。

于 2012-08-28T15:06:04.867 に答える