17

Webdriverを使用して要素を見つけるための最良かつ最速の方法はどれですか?By.XPathまたはBy.IDまたは他の何か?なぜ?

私は多くの場所でXPathが適切な候補であることを読みましたが、その正確な理由を見つけることができませんでした。

4

3 に答える 3

36

通常、ID で要素を検索するのが最速のオプションになりdocument.getElementById()ます。これは、多くのブラウザーで最適化されているルートで最終的に を呼び出すためです。

XPath による要素の検索は、非常に複雑なセレクターを使用して要素を検索するのに役立ち、最も柔軟な選択戦略ですが、特に IE では非常に遅くなる可能性があります。IE 6、7、または 8 では、XPath による検索は、Firefox で同じことを行うよりも桁違いに遅くなる可能性があります。IE はネイティブの XPath-over-HTML ソリューションを提供しないため、プロジェクトは JavaScript XPath 実装を使用する必要があり、レガシー バージョンの IE の JavaScript エンジンは実際にははるかに低速です。

複雑なセレクターを使用して要素を検索する必要がある場合は、通常、可能であれば CSS セレクターを使用することをお勧めします。XPath ほど柔軟ではありませんが、同じケースの多くをカバーし、XPath のように IE で極端にパフォーマンスが低下することはありません。

于 2012-08-02T13:39:30.630 に答える